更新字典理解中的集合?

update a set inside a dict comprehension?

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

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

我想创建一个新字典 d3,它包含与 d1d2 相同的键,但值是更新每组 d1[key]d2[key],我想在字典理解中这样做,比如:

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

然而,结果:

d1[k].update(d2[k])

当然是None,我得到一个像这样的字典:

d3 = {'a':None, 'b':None}

有什么想法吗?

update 是就地版本。 returns一个新的集合,不改变原来的方法是union;或者,您可以使用 | 运算符

d3 = {k: d1[k].union(d2[k]) for k in d1}
# or
d3 = {k: d1[k] | d2[k] for k in d1}

这是你想要的吗?我不确定

d3 = {k: d1[k] | d2[k] for k in d1}