【发布时间】:2017-02-20 09:33:12
【问题描述】:
我有一个包含数千条记录的子列表。 列表中的一个示例如下:
list_full = [
[343, 354,"Sometext1", "Sometext2", "Sometext3"],
[43543, 345435,"Sometext1", "Sometext2", "Sometext3"],
[4354, 54354,"Sometext1", "Sometext2", "Sometext3",
"Sometext4", "Sometext5"]
]
我想将此主列表分成两个单独的列表。第一个列表应该有来自子列表的前两条记录,第二个应该有剩余的记录。 例如,我需要将它们存储为:
list_a = [[343, 354], [43543, 345435], [004354, 54354]]
list_b = [["Sometext1", "Sometext2", "Sometext3"], ["Sometext1", "Sometext2", "Sometext3"], ["Sometext2", "Sometext3", "Sometext4", "Sometext5"]]
我有以下脚本:
list_1 = []
list_2 = []
for item in list_full:
list_1.append(item[:2])
list_2.append(item[2:])
但是使用循环并且有点慢。有没有更快的方法来执行这个列表子集?谢谢!
【问题讨论】:
-
从您的问题陈述看来,您正在处理某种结构化数据。我建议看一下 pandas 库,因为从长远来看,它似乎是一个潜在的迭代库。它将允许您执行切片、索引和更多功能。
-
我认为您当前的方法很好,其他可能的方法(例如列表推导或
map)将需要迭代list_full两次而不是一次 -
感谢您的提示。不过,列表理解似乎更快。