我有两个非常大的列表,循环一次至少需要一秒钟,我需要循环 200,000 次。删除两个列表中的重复项以形成一个列表的最快方法是什么?
最佳答案
这是我能想到的最快的方法:
import itertools
output_list = list(set(itertools.chain(first_list, second_list)))
轻微更新:如jcd指出,根据您的应用程序,您可能不需要将结果转换回列表。由于集合本身是可迭代的,因此您可以直接使用它:
output_set = set(itertools.chain(first_list, second_list))
for item in output_set:
# do something
请注意,任何涉及使用 set()
的解决方案都可能会重新排列列表中的元素,因此不能保证元素会以任何特定顺序排列。也就是说,由于您要组合两个列表,所以很难想出一个很好的理由说明为什么您无论如何都需要对它们进行特定排序,所以这可能不是您需要担心的事情。
关于python - 删除列表 Python 中重复项的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1675321/