在Python中将集合与集合列表进行比较的有效方法

时间:2016-08-24 23:54:47

标签: list python-2.7 set

是否有任何有效的方法可以将集合与集合列表进行比较。目前,我只是循环遍历集合列表,并将列表的每个元素与特定集合进行比较。 例如:set1=Set([1,2,5]) and lst1=[Set([1,2,3,4,5]),Set([10,11,12]),Set([7,8,9])]现在我必须将set1与列表lst1中的每个集进行比较。现在如果我得到set1-st==0 st lst1中的set1-st!=0,我将从循环中断,但会在sh时继续。 有没有有效的方法来进行这种比较,或者我们必须以旧的方式进行(迭代列表并与给定的集合进行比较。)

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用all()内置函数:

>>> set1=set([1,2,5])
>>> lst1=[set([1,2,3,4,5]),set([10,11,12]),set([7,8,9])] 
>>> 
>>> all(set1-i for i in lst1)
False
>>> 
>>> all(i-set1 for i in lst1)
True

或者根据您的情况,您可以使用set.union()创建一个统一的列表集,然后对您的设置和新设置执行操作:

>>> set().union(*lst1)
{1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12}