比方说:
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}
但我不确定这有多Pythonic。对于这种“简单”的操作来说,感觉有点过于冗长,并且可能存在更好的解决方案。 我最关心的是 Python >= 3.9。
感谢您提前提出的建议。
最佳答案
我不确定Pythonic,但你可以研究set
操作,如set.intersection :
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}
关于python - 将一个字典合并到另一个仅具有公共(public)字段的字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69968386/