我已经创建了一个我想要传递给set.intersection()的集合列表
例如:
List_of_Sets = [{1,2,3},{3,4,5},{5,6,7}]
set.intersection(List_of_Sets)
结果:
TypeError: descriptor 'intersection' requires a 'set' object but received a 'list'
期望的输出:
{3,5}
如何将列表中的每个集合作为单独的参数传递给set.intersection()?
答案 0 :(得分:5)
使用解包运算符:set.intersection(*List_of_Sets)
正如另一个答案所指出的,你在列表中没有交叉点。您想计算相邻元素交集的并集吗?
>>> set.union(*[x & y for x, y in zip(List_of_Sets, List_of_Sets[1:])])
set([3, 5])
答案 1 :(得分:2)
>>> List_of_Sets = [{1,2,3},{3,4,5},{5,6,7}]
>>> set.intersection(*List_of_Sets) # * unpacks list into arguments
set([])
该集合中没有交叉点,因此它返回一个空集。一个工作的例子:
>>> List_of_Sets2 = [{1,2,3},{3,4,5},{5,6,3}]
>>> set.intersection(*List_of_Sets2) # * unpacks list into arguments
set([3])