我有两个dicts,它们共享相同的键,但具有不同的值。每个值都是这样的集合:
d1 = {'a': set(["a","b","c"]), 'b': set(["x","y","c"])}
d2 = {'a': set(["a","b","yu"]), 'b': set(["x","y","ri"])}
我想创建一个新的字典d3
,其中包含与d1
和d2
相同的键,但是值的更新每组{{1}与d1[key]
一起,我想在dict理解中做到这一点,例如:
d2[key]
然而,结果:
d3 = {k: d1[k].update(d2[k]) for k in d1}
当然是d1[k].update(d2[k])
,我得到了一个像:
None
有什么想法吗?
答案 0 :(得分:1)
update
是就地版本。返回新集合并保持原始未更改的方法是union
;或者,您可以使用|
运算符
d3 = {k: d1[k].union(d2[k]) for k in d1}
# or
d3 = {k: d1[k] | d2[k] for k in d1}
答案 1 :(得分:0)
d3 = {k: d1[k] | d2[k] for k in d1}