更新dict理解中的一组?

时间:2015-03-03 11:27:36

标签: python dictionary set

我有两个dicts,它们共享相同的键,但具有不同的值。每个值都是这样的集合:

d1 = {'a': set(["a","b","c"]), 'b': set(["x","y","c"])} 
d2 = {'a': set(["a","b","yu"]), 'b': set(["x","y","ri"])} 

我想创建一个新的字典d3,其中包含与d1d2相同的键,但是值的更新每组{{1}与d1[key]一起,我想在dict理解中做到这一点,例如:

d2[key]

然而,结果:

d3 = {k: d1[k].update(d2[k]) for k in d1}

当然是d1[k].update(d2[k]) ,我得到了一个像:

这样的词典
None

有什么想法吗?

2 个答案:

答案 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}