Is there any pythonic way to combine two dicts (adding values for keys that appear in both)?

前端 未结 17 2561
梦毁少年i
梦毁少年i 2020-11-22 01:50

For example I have two dicts:

Dict A: {\'a\': 1, \'b\': 2, \'c\': 3}
Dict B: {\'b\': 3, \'c\': 4, \'d\': 5}

I need a pythonic way of \'comb

17条回答
  •  刺人心
    刺人心 (楼主)
    2020-11-22 02:55

    What about:

    def dict_merge_and_sum( d1, d2 ):
        ret = d1
        ret.update({ k:v + d2[k] for k,v in d1.items() if k in d2 })
        ret.update({ k:v for k,v in d2.items() if k not in d1 })
        return ret
    
    A = {'a': 1, 'b': 2, 'c': 3}
    B = {'b': 3, 'c': 4, 'd': 5}
    
    print( dict_merge_and_sum( A, B ) )
    

    Output:

    {'d': 5, 'a': 1, 'c': 7, 'b': 5}
    

提交回复
热议问题