我有
dict1 = {a: 1, b: 2, c: 3}
dict2 = {b: 3, c: 2}
我如何合并 dict1 和 dict2 以便结果 dict3 将具有 {a: 1, b: 3, c: 3} 我知道我们可以像这样合并 dict3 = {**a, **b},但是是否有任何我必须写的条件才能解决我的问题?
最佳答案
给你:
dict1 = {"a": 1, "b": 2, "c": 3}
dict2 = {"b": 3, "c": 2}
result = {}
for k in dict1.keys() | dict2.keys():
result[k] = max(dict1.get(k, float('-inf')), dict2.get(k,float('-inf')))
print(result)
我正在使用默认值:dict1.get(k, DEFAULT)
并使用按位 OR 运算符 |
连接两个键集。
注意 float('-inf')
的默认值表示
dict1 = {"a": -1, "b": 2, "c": 3}
dict2 = {"b": -5, "c": 2}```
变成{'a': -1, 'b': 2, 'c': 3}
.
而对于默认的 0
你会得到
{'b': 2, 'c': 3, 'a': 0}
这两种方式都可以被视为同样有效的响应。
关于python - 为每个键合并 2 个具有更高值的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61111041/