有2个字典,我想附加第二个字典的匹配键,并将它们存储为父字典中的列表f个字典

时间:2018-09-10 14:10:53

标签: python

例如,我有两个以下的字典,

dict1 = [{'id': 1, 'name': 'BOB'}, {'id': 2, 'name': 'DOD'}]
dict2 = [{'idd': 1, 'comp': 'BB', }, {'idd': 1, 'work': 'pent'}, {'idd': 2, 'comp': 'DD'}]

我想要下面的输出-

dict1 = [
          {
           'id': 1,
           'name': 'BOB',
           'Details:[
                      {
                       'idd': 1,
                       'comp': 'BB'
                      },
                      {
                       'idd': 1,
                       'work': 'pent'
                       }
                    ]
          },
          {
           'id': 2,
           'name': 'DOD',
           'Details':[
                      {
                       'idd': 2,
                       'comp': 'DD'
                      }
                    ]
          }
        ]

我想使用字典zip或ordereddict获得以上结果

1 个答案:

答案 0 :(得分:1)

dict1为键,将id转换为实词,并为每个条目添加一个空的Details列表。然后,迭代dict2和缺少的元素。

dict1 = {item['id']: {**item, **{'Details': []}} for item in dict1}

for item in dict2:
    item = dict(item)
    _id = item.pop('idd')
    temp[_id]['Details'].append(item)

dict1 = [item for item in dict1.values()]