合并2个字典,每个键的值更高

我有

dict1 = {a: 1, b: 2, c: 3}
dict2 = {b: 3, c: 2}

如何合并dict1和dict2,以便结果dict3具有{a:1,b:3,c:3} 我知道我们可以像dict3 = {** a,** b}这样合并,但是在任何地方都必须写一个条件才能使其适用于我的问题吗?

评论
  • alber1986
    alber1986 回复

    You could simply loop through them and compare the values, and use dict.setdefault(key, 0) to get around unset values.

    dict1 = {'a': 1, 'b': 2, 'c': 3}
    dict2 = {'b': 3, 'c': 2}
    
    dict3 = {}
    for d in dict1, dict2:
        for k, v in d.items():
            if v > dict3.setdefault(k, 0):
                dict3[k] = v
    print(dict3)  # -> {'a': 1, 'b': 3, 'c': 3}
    
  • 24K纯贱
    24K纯贱 回复

    干得好:

    
        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, 0), dict2.get(k, 0))
    
        print(result)
    
    

    我使用默认的get:dict1.get(k,DEFAULT)并将两个键集与´|`运算符连接在一起。