我正在使用发电机组来查看组之间的交叉点。生成器返回集合的不同组合的列表。我尝试了以下方法:
overlapped = [set.intersection(g) for g in powerset(listOfSets)]
但是 g 是一个列表,而 set.intersection 不包含列表;它只需要多个元素都是集合。
是否有内置函数,或者将 n 元素列表分解为 n 个单独的返回元素的方法?
您可以使用参数解包(*
运算符)来完成此操作。
>>> foo = [set([1,2]), set([2,3]), set([2,4])]
>>> set.intersection(*foo)
set([2])