How to merge multiple dicts with same key?

前端 未结 14 2609
别跟我提以往
别跟我提以往 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:43

    If keys are nested:

    d1 = { 'key1': { 'nkey1': 'x1' }, 'key2': { 'nkey2': 'y1' } } 
    d2 = { 'key1': { 'nkey1': 'x2' }, 'key2': { 'nkey2': 'y2' } }
    
    ds = [d1, d2]
    d = {}
    for k in d1.keys():
        for k2 in d1[k].keys():
            d.setdefault(k, {})
            d[k].setdefault(k2, [])
            d[k][k2] = tuple(d[k][k2] for d in ds)
    

    yields:

    {'key1': {'nkey1': ('x1', 'x2')}, 'key2': {'nkey2': ('y1', 'y2')}}
    

提交回复
热议问题