尝试在DLL_THREAD_DETACH
中查找集合的交集时,会出现以下错误。
示例setA = [['1','2'],['2,3'],'['2','4']]
我知道它不能具有“ Lists”数据类型的交集,因此我尝试将其转换为集合,但是没有用
setOfsets
预期结果:def multiple_set_intersection(*sets):
"""Return multiple set intersection."""
try:
return set.intersection(*sets)
except TypeError: # this is Python < 2.6 or no arguments
pass
try: a_set= sets[0]
except IndexError: # no arguments
return set() # return empty set
return reduce(a_set.intersection, sets[1:])
multiple_set_intersection(*setOfSets)
(即setOfSets
)内部存在的所有集合的交集
实际结果:
intersection = 2
答案 0 :(得分:0)
将列表转换为第一个设置。因为set.intersection
是set
而不是list
的方法。
setOfSets
包含列表列表。请参见代码示例。您可以做的是在调用set.interseciton
时映射要设置的每个列表。def multiple_set_intersection(*sets):
"""Return multiple set intersection."""
try:
return set.intersection(*map(set,sets))
except TypeError: # this is Python < 2.6 or no arguments
pass
try: a_set= map(set,sets[0])
except IndexError: # no arguments
return set() # return empty set
return set.intersection(*map(set,l))
setOfSets = [['1','2'], ['2','3'], ['2','4']]
print(multiple_set_intersection(*setOfSets))
PS:如果您的输入与上面的代码中指定的一样,那么它将起作用。