How to merge multiple dicts with same key?

前端 未结 14 2538
别跟我提以往
别跟我提以往 2020-11-22 13:12

I have multiple dicts/key-value pairs like this:

d1 = {key1: x1, key2: y1}  
d2 = {key1: x2, key2: y2}  

I want the result to be a new di

14条回答
  •  误落风尘
    2020-11-22 13:36

    def merge(d1, d2, merge):
        result = dict(d1)
        for k,v in d2.iteritems():
            if k in result:
                result[k] = merge(result[k], v)
            else:
                result[k] = v
        return result
    
    d1 = {'a': 1, 'b': 2}
    d2 = {'a': 1, 'b': 3, 'c': 2}
    print merge(d1, d2, lambda x, y:(x,y))
    
    {'a': (1, 1), 'c': 2, 'b': (2, 3)}
    

提交回复
热议问题