如何在 python 中有效地比较两个集合列表?

How to compare two list of sets effectively in python?

我有一个集合列表:

list = [{1,2}, {2,3}, {1,3}, {2,1} etc]

我需要一个每个元素只出现一次的列表。 创建一组列表失败并出现 set is not hashable 错误 如果我创建另一个列表,并添加每个元素一次,如果不在列表中,则追加列表有效, 但现在我必须处理一个包含大约 600 000 个值对的列表,这需要很长时间。 有没有更有效的方法?

您可以使用以下方法对集合列表执行并集:

l = [{1,2}, {2,3}, {1,3}, {2,1}]
set.union(*l)

输出:

{1, 2, 3}

引用了您的评论;正如您提到的那样有效,我将 post 我的评论作为正确答案。

set(map(tuple, list_))

输出:

{(1, 2), (1, 3), (2, 3)}

请注意:
我已经将你的 list 变量命名为 list_,因为它覆盖了内置变量。

此方法似乎可以线性扩展。 1000 组列表的时间为 206 us,10000 组为 2.19 ms。