我正在尝试从具有相同的第一项和第三项但仅保留第一项的列表中删除列表。示例列表和输出:
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)
如何改善代码?提前致谢。
改进的版本:
b_li = set() output_list = [] b_li_add = b_li.add output_list_append = output_list.append for x in li: s = (x[0], x[2]) if s not in b_li: b_li_add(s) output_list_append(x)
更改为:
set()
b_li
s