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