如何合并两个字典并保持最大值与公共键的关系?

Nom*_*eer 1 python dictionary mergeddictionaries

我有两本字典,如下所示:

{'r': 2, 'e': 4, 'h': 2, 'k': 4}
Run Code Online (Sandbox Code Playgroud)

{'r': 2, 'e': 5, 'y': 2, 'h': 2}
Run Code Online (Sandbox Code Playgroud)

如何获得包含所有键的字典,但如果两个初始字典中都有键,它会保留该键的较高值?我想要一本如下所示的字典:

{'e': 5, 'k': 4, 'y': 2, 'h': 2, 'r': 2}
Run Code Online (Sandbox Code Playgroud)

以前的答案都没有帮助我。

小智 5

您可以创建两个字典键的并集,然后使用字典理解来获取每个键的最大值:

keys = set(a.keys()).union(b.keys())
output = {k:max(a.get(k,float('-inf')), b.get(k, float('-inf'))) for k in keys}
Run Code Online (Sandbox Code Playgroud)