Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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_List_Dictionary - Fatal编程技术网

Python 合并两个不同大小和不同值的词典

Python 合并两个不同大小和不同值的词典,python,list,dictionary,Python,List,Dictionary,如果我有两个不同的字典,我是从不同大小的查询中创建的 dictionary1: {'id': 1 , 'passCount': 3}, {'id': 2 , 'passCount': 4}, {'id': 5 , 'passCount': 7}, {'id': 6, 'passCount': 3} dictionary2: {'id': 1 , 'failCount': 1}, {'id': 3 , 'failCount': 2}, {'id': 5 , 'failCount': 3} 最

如果我有两个不同的字典,我是从不同大小的查询中创建的

dictionary1:
{'id': 1 , 'passCount': 3}, {'id': 2 , 'passCount': 4}, {'id': 5 , 'passCount': 7}, {'id': 6, 'passCount': 3}

dictionary2: 
{'id': 1 , 'failCount': 1}, {'id': 3 , 'failCount': 2}, {'id': 5 , 'failCount': 3}
最初,我根据以下两个词典创建了一个主列表:

List = []
for i in dictionary1:
for j in dictionary2:
    if i['id'] = j['id]:
       List.append[i['id'],i['passCount'],j['failCount']]
    else:
       List.append[i['id'],i['passCount'],0]
       List.append[j['id'],0, j['failCount']
return List
当我为我的数据打印这个列表时,我只会得到一个匹配id的列表,而不会考虑其他id

出于这个原因,我想打印一本字典,这样我就可以把它打印出来

{'id'=1,'passCount'=3,'failCount'=1},{'id':2,'passCount':4,'failCount'=0}…
等等,但不删除任何id的


谢谢

也许它们是两个不同的列表,而不是字典,所以我假设它们是两个列表:

failCount
默认设置为0,您可以尝试以下操作:

a=[{'id': 1 , 'passCount': 3}, {'id': 2 , 'passCount': 4}, {'id': 5 , 'passCount': 7}, {'id': 6, 'passCount': 3}]
b=[{'id': 1 , 'failCount': 1}, {'id': 3 , 'failCount': 2}, {'id': 5 , 'failCount': 3}]

for j in a:
    j.update({'failCount': 0})
    for i in b:
        if i["id"]==j["id"]:
            j.update(i)

print(a)
输出:

[{'id': 1, 'passCount': 3, 'failCount': 1}, {'id': 2, 'passCount': 4, 'failCount': 0}, {'id': 5, 'passCount': 7, 'failCount': 3}, {'id': 6, 'passCount': 3, 'failCount': 0}]
使用的简短解决方案和方法:

输出:

[{'passCount': 3, 'id': 1, 'failCount': 1}, {'passCount': 4, 'id': 2, 'failCount': 0}, {'passCount': 0, 'id': 3, 'failCount': 2}, {'passCount': 7, 'id': 5, 'failCount': 3}, {'passCount': 3, 'id': 6, 'failCount': 0}]

包含
dictionary1
dictionary2
的结构无效。假设该特定id没有“故障计数”,是否可以任意将其设置为0?并打印出{'id':2,'passCount':4,'failCount':0}唯一不幸的是对于'id':3,'passCount'应该是'passCount'=0,而不是没有它
[{'passCount': 3, 'id': 1, 'failCount': 1}, {'passCount': 4, 'id': 2, 'failCount': 0}, {'passCount': 0, 'id': 3, 'failCount': 2}, {'passCount': 7, 'id': 5, 'failCount': 3}, {'passCount': 3, 'id': 6, 'failCount': 0}]