gpt4 book ai didi

python - 从列表中删除某些项目重复的列表

转载 作者:行者123 更新时间:2023-11-28 21:59:18 27 4
gpt4 key购买 nike

我试图从列表中删除列表,该列表具有相同的第一个和第三个项目但只保留第一个。示例列表和输出:

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)

变化是:

  • b_li 使用 set() 可以加快查找速度。
  • s 转换为元组,因为不需要将唯一的第一个和第三个元素存储为列表。
  • 减少了函数查找,这也加快了代码速度。

关于python - 从列表中删除某些项目重复的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16878062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com