比方说:
a = {'a': 1, 'b': 2}
b = {'b': 22, 'c': 3}
如何将b
合并为a
,只设置a
中已经存在的属性,而忽略所有其他属性?
这是我想出的解决方案:
a |= {k: v for k, v in b.items() if k in a.keys()}
{'a': 1, 'b': 22}
但我不确定这有多像蟒蛇;简单的";操作并可能存在更好的解决方案。我最关心的是Python>=3.9.
感谢您提前提出的建议。
我不确定Pythonic,但您可以研究像set.intersection:这样的set
操作
a = {'a': 1, 'b': 2}
b = {'b': 22, 'c': 3}
for common_key in set(a).intersection(b):
a[common_key] = b[common_key]
print(a)
如果你想要一个Python单行,你可以使用类似于你以前的dict
理解:
a = {k : v for k, v in (a | b).items() if k in a}
结果:
{'a': 1, 'b': 22}
以下是关于这篇文章的解决方案:在不添加新密钥的情况下更新dict?
a.update((k, b[k]) for k in set(b).intersection(a))
输出:
{'a': 1, 'b': 22}