如何将列表列表转换为单数集

时间:2019-01-30 16:17:54

标签: python python-3.x set

尝试在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

1 个答案:

答案 0 :(得分:0)

将列表转换为第一个设置。因为set.intersectionset而不是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:如果您的输入与上面的代码中指定的一样,那么它将起作用。