[英]How to compare two list of sets effectively in python?
我有一个集合列表:
list = [{1,2}, {2,3}, {1,3}, {2,1} etc]
我需要一个列表,其中每个元素都出现一次。 创建一组列表失败,出现一个 set is not hashable 错误如果我创建另一个列表,并使用 if not in list 添加每个元素一次,然后追加列表有效,但现在我必须处理一个包含大约 600 000 个值对的列表,而且需要永远。 有没有更有效的方法?
引用您的评论; 正如您所提到的,这行得通,我会将我的评论作为正确答案发布。
set(map(tuple, list_))
输出:
{(1, 2), (1, 3), (2, 3)}
请注意:
我已将您的list
变量命名为list_
,因为它覆盖了内置变量。
这种方法似乎是线性缩放的。 1000 组列表的时间为 206 us,10000 为 2.19 ms。
您可以使用以下方法对集合列表执行联合:
l = [{1,2}, {2,3}, {1,3}, {2,1}]
set.union(*l)
输出:
{1, 2, 3}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.