Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列表中多个集合的并集_Python_Set_Set Comprehension - Fatal编程技术网

Python 列表中多个集合的并集

Python 列表中多个集合的并集,python,set,set-comprehension,Python,Set,Set Comprehension,这是我的密码 s = set() for x in [ {1,2}, {3,4}, {5,1} ]: s |= x 它返回集([1,2,3,4,5]) 在这种情况下,有可能使用集合理解吗?如何将其写得更短?set.union 为什么你需要一个循环呢?使用set.union,可以一次计算两个以上集合(容器)的并集。我之所以说“containers”,是因为第二个(以及以后的)参数根本不需要设置 set.union(*[{1,2}, [3,4], [5,1]]) # {1, 2, 3, 4

这是我的密码

s = set()
for x in [ {1,2}, {3,4}, {5,1} ]:
    s |= x
它返回
集([1,2,3,4,5])

在这种情况下,有可能使用集合理解吗?如何将其写得更短?

set.union
为什么你需要一个循环呢?使用
set.union
,可以一次计算两个以上集合(容器)的并集。我之所以说“containers”,是因为第二个(以及以后的)参数根本不需要设置

set.union(*[{1,2}, [3,4], [5,1]])
# {1, 2, 3, 4, 5}
然而,第一个问题需要解决。或者

set().union(*[[1,2], [3,4], [5,1]])
# {1, 2, 3, 4, 5}
在set对象(而不是类)上调用
union
时,不需要设置任何参数


functools.reduce

这将执行成对减少,从而累积结果。但是,没有第一个选项好。

如果您真的想在这里了解集合理解:

lst = [{1,2}, {3,4}, {5,1}]
{elem for set_ in lst for elem in set_}
除了
{1,2}.union(*[[3,4],[5,1]])
之外,您还可以使用
set().union(*[{1,2}[3,4],[5,1]])
from functools import reduce

reduce(set.union, [{1,2}, {3,4}, {5,1}])
# {1, 2, 3, 4, 5}
lst = [{1,2}, {3,4}, {5,1}]
{elem for set_ in lst for elem in set_}