我有以下dict对象:
obj = {
'US': set(...),
'FR': set(...),
'BE': set(...)
}
我如何将它组合成一套?目前我正在以冗长的方式做到:
items = set(list(obj['US']) + list(obj['FR']) + list(obj['BE']))
答案 0 :(得分:7)
有效的方法是使用set.union(* obj.values())
例如:
obj = {
'US': set([1,2,3]),
'FR': set([3,4,5]),
'BE': set([5,6,7])
}
set.union(*obj.values())
Out[35]: {1, 2, 3, 4, 5, 6, 7}
答案 1 :(得分:1)
您可以在此处使用chain
:
from itertools import chain
set(chain(*obj.values()))
答案 2 :(得分:0)
稍微简洁的方法是使用|
运算符:
items = obj['US'] | obj['FR'] | obj['BE']
答案 3 :(得分:0)
set类型支持|
运算符来执行联合。它还支持.union
方法。所以你想要的可能是
items = set.union(*obj.values())
或
items = obj['US'] | obj['FR'] | obj['BE']
如果你想要明确。