python - 删除列表 Python 中重复项的最快方法

标签 python list sorting

我有两个非常大的列表,循环一次至少需要一秒钟,我需要循环 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/

相关文章:

python - 在没有exec/eval,python的字符串中调用代码

python - Beautifulsoup 使用 `find_all` 按文本查找元素,无论其中是否有元素

c++ - 自定义链表 C++ 中的内存泄漏

c# - 应用 Dijkstra 算法实现时列表中的对象被删除

c# - 为什么不推荐使用堆来排序LinkedList?

Python斐波那契数列

python - python中opencv阈值的最小blob大小

python - 在列表中,如何将每个字符串(混合特殊字符)分隔成单个字符?

algorithm - 如何有效地计算冒泡排序迭代的次数?

c - Shell 排序中的 h 排序