Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 3.x 使集合并集的迭代_Python 3.x_Iteration_Set Union - Fatal编程技术网

Python 3.x 使集合并集的迭代

Python 3.x 使集合并集的迭代,python-3.x,iteration,set-union,Python 3.x,Iteration,Set Union,我有一个包含集合作为值的字典,我想使用for循环对所有这些集合进行并集。我已经尝试过将set.union()与for循环一起使用,但我认为这是行不通的,有没有简单的方法来完成这个迭代 for key in self.thisDict.keys(): for otherKey in self.thisDict.keys(): if otherKey!=key: unionSet=set.union(self.thisDict[

我有一个包含集合作为值的字典,我想使用for循环对所有这些集合进行并集。我已经尝试过将set.union()与for循环一起使用,但我认为这是行不通的,有没有简单的方法来完成这个迭代

for key in self.thisDict.keys():
        for otherKey in self.thisDict.keys():
            if otherKey!=key:
                unionSet=set.union(self.thisDict[otherKey])

我想我遇到的问题是,我并没有把所有的集合结合起来。我正在处理大量数据,所以很难说。使用我正在创建的unionSet对象,我正在打印这些数据,它看起来并不像我期望的那么大,这是一种相当简单的方法-创建一个结果集,迭代dict值,并使用当前迭代中找到的值更新结果集
|=
是方法的别名


一个简单的集合理解可以:

>>> d = {1: {1, 2, 3}, 2: {4, 5, 6}}
>>> {element for value in d.values() for element in value}
{1, 2, 3, 4, 5, 6}
在我看来,这更具可读性:

>>> from itertools import chain
>>> set(chain.from_iterable(d.values()))
{1, 2, 3, 4, 5, 6}

你能分享一下你试过的代码吗?你到底有什么问题?
>>> from itertools import chain
>>> set(chain.from_iterable(d.values()))
{1, 2, 3, 4, 5, 6}