Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有两个字典,我想附加第二个字典中的匹配键,并将它们存储为父字典中的字典列表_Python - Fatal编程技术网

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

Python 有两个字典,我想附加第二个字典中的匹配键,并将它们存储为父字典中的字典列表,python,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',

例如,我有以下两本字典

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'
                      }
                    ]
          }
        ]
我想得到上面的结果,使用dictionary zip或orderedict将dict1转换成一个真正的dict,id作为键,并向每个条目添加一个空的详细信息列表。然后,迭代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()]

到目前为止,您尝试了什么?我尝试了以下内容-对于dict1中的I:arr=[]对于dict2中的j:if I['id']==j['idd']:arr.appendj I.update{'Details':arr}请使用此代码片段更新您的问题-注释中的代码不可读-并解释什么不起作用。效果很好,但我不想使用我的方法。我只是想知道如何使用zip或OrderedDitch实现同样的效果。我不能在空闲状态下运行它,它显示的“**”是无效语法。@pravashpanigrahi:您使用的是哪种python版本?