我试图从列表中删除具有相同第一和第三项但仅保留第一项的列表。示例列表和输出:从列表中删除某些项目重复的列表
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)
我该如何改进代码?提前致谢。
使用一个集合而不是一个列表来记录看到的第一个/最后一个对。 – Marcin
根据您的使用情况,您可以返回迭代器而不是创建新列表。它会为你节省大量的内存。 – iurisilvio
可能重复? http://stackoverflow.com/questions/15037226/python-remove-duplicate-items-from-nested-list?rq=1 –