【发布时间】:2013-05-28 12:02:04
【问题描述】:
我正在尝试从具有相同第一项和第三项但仅保留第一项的列表中删除列表。示例列表和输出:
li=[ [2,4,5], [1,3,5], [1,6,5] ]
output_list = [ [2,4,5], [1,3,5] ]
我编写的代码需要很长时间才能执行,因为原始列表包含数百万个列表。
b_li = []
output_list = []
for x in li:
s = [ x[0], x[2] ]
if s not in b_li:
b_li.append(s)
output_list.append(x)
如何改进代码?提前致谢。
【问题讨论】:
-
使用集合而不是列表来记录看到的第一对/最后一对。
-
根据您的使用情况,您可以返回一个迭代器而不是创建一个新列表。它将为您节省大量内存。