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}]