【问题标题】:Convert some array items into integers and split them up将一些数组项转换为整数并将它们拆分
【发布时间】:2020-10-29 19:19:33
【问题描述】:

好的,我做了很多研究,真的找不到适合我的情况。

我有一个看起来像的数组

[['Task Name1', 'Enter Task Description1', '1', '1', '1', '1.0'], ['Task Name2', 'Enter Task Description2', '1', '3', '2', '0.16666666666666666']] 

基本上,我想将这 2 个(以及更多取决于有多少任务/子数组)数组拆分为 2 个单独的数组。我试图这样做,但问题是上面的“任务名称”实际上可以是任何东西,因此基于这些进行排序不是一个可行的解决方案。然后,我想将这些字符串中的每个数字值转换为浮点数,并将所有数组排序为每个子数组中 last 数字的顺序。所以基本上,如果这是我的数组

[['Task Name1', 'Enter Task Description1', '1', '1', '1', '1.0'], ['Task Name2', 'Enter Task Description2', '1', '3', '2', '0.16666666666666666'], ['Task Name3', 'Enter Task Description3', '2', '1', '2', '1.2']]

我会提取每个任务名称并将它们按最后一个整数的值/强度的顺序排列。如果可能的话,我想将这些数字中的每一个分配到任务名称下的一个小节中。请记住,任务名称可以是任何内容,实际上可以是任何内容。

所以在想出这个之后,我尝试了不同的方法,比如“排序”,但是当然,它们要么不起作用,要么返回错误,因为我不知道如何从字面上做任何这些[我是 python 新手(或者至少是它的这一面)]。所以我转向这里,作为你们帮助我解决这个问题并让它工作的最后手段。我只需要知道:-

一个。将数组中的数字转换为整数并将它们保存在相同的子数组中 湾。按照最后一个整数的最小值到最大值的顺序对这些“子数组”中的每一个进行排序 C。根据最后一个整数取出一个子数组的所有变量。

【问题讨论】:

标签: python arrays split type-conversion


【解决方案1】:

这就是你想要的(我希望)(如果你有问题 - 问):

lst = [['Task Name1', 'Enter Task Description1', '1', '1', '1', '1.0'], ['Task Name2', 'Enter Task Description2', '1', '3', '2', '0.16666666666666666'], ['Task Name3', 'Enter Task Description3', '2', '1', '2', '1.2']]
lst.sort(key=lambda x: x[-1], reverse=True)
for lsts in lst:
    for index, item in enumerate(lsts):
        if item.isdigit():
            lsts[index] = int(item)
        else:
            try:
                lsts[index] = float(item)
            except ValueError:
                pass

    print(lsts[0])

print(lst)

【讨论】:

  • 非常感谢。我的问题不是很清楚,但我非常感谢你帮助我。
  • 使用lsts[integer] 方法我只能从一个子数组打印/获取变量(它在我超过该数组的限制后停止),是否可以使用它从其他数组打印它也可以(或者让它从头开始,这样我就可以从那里开始工作了)。
  • @ShafayAsghar 你可以像这样添加索引:lsts[index1][index2] 等等
  • 是的,但如果该数组中有另一个数组,您将获得该子子数组的第一项。或者我不明白你的问题
  • 不不,我使用的是 lsts 而不是 lst,这是我的错。谢谢你帮助我!
【解决方案2】:

下面是一种根据每个子数组的最后一个值对数组进行排序的简单方法:

lst = [['Task Name1', 'Enter Task Description1', '1', '1', '1', '1.0'], ['Task Name2', 'Enter Task Description2', '1', '3', '2', '0.16666666666666666'], ['Task Name3', 'Enter Task Description3', '2', '1', '2', '1.2']]
lst.sort(key=lambda x: x[-1])  # -1 accesses last item 
print(lst)

然后您可以根据需要继续操作数据类型

【讨论】:

    猜你喜欢
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 2013-08-17
    相关资源
    最近更新 更多