更新字典理解中的集合?
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
,它包含与 d1
和 d2
相同的键,但值是更新每组 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}
我有两个字典,它们共享相同的键但具有不同的值。每个值都是这样的集合:
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
相同的键,但值是更新每组 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}