Python 如何合并包含多个词条的两个词典列表
我有两个字典列表,我想合并它们。这里的障碍是,我想根据键值将它们组合起来,这个键值在每次迭代中都是不同的,它们不是固定的,我该如何实现这一点? 以下是我拥有的两个需要合并的词典列表Python 如何合并包含多个词条的两个词典列表,python,list,dictionary,merge,Python,List,Dictionary,Merge,我有两个字典列表,我想合并它们。这里的障碍是,我想根据键值将它们组合起来,这个键值在每次迭代中都是不同的,它们不是固定的,我该如何实现这一点? 以下是我拥有的两个需要合并的词典列表 l1 = [ {'Fvcm':{ 'name' :'FVCM', 'size' : 8, 'Type' : 'Z' } }, {'RPZM':{ 'name' :'RPZM
l1 = [
{'Fvcm':{
'name' :'FVCM',
'size' : 8,
'Type' : 'Z'
}
},
{'RPZM':{
'name' :'RPZM',
'size' : 8,
'Type' : 'R'
},
},
{'ZAN':{
'name' :'ZAN',
'size' : 8,
'Type' : 'P'
}
}
]
l2 = [
{'Fvcm':{
'name' :'FVCM',
'map' : 'Prim1'
}
},
{'RPZM':{
'name' :'RPZM',
'map' : 'Prim2'
},
},
{'ZAN':{
'name' :'ZAN',
'map' : 'Prim3'
}
}
]
我希望最终结果如下所示:
l3 = [
{'Fvcm':{
'name' :'FVCM',
'map' : 'Prim1',
'size' : 8,
'Type' : 'Z'
}
},
{'RPZM':{
'name' :'RPZM',
'map' : 'Prim2',
'size' : 8,
'Type' : 'R'
},
},
{'ZAN':{
'name' :'ZAN',
'map' : 'Prim3',
'size' : 8,
'Type' : 'P'
}
}
]
提前谢谢 您可以使用,将两个词典合并在一起。这需要将嵌套的目录列表结构修改为非嵌套的目录:
d1 = {k: v for item in l1 for k, v in item.items()} # regular k,v dict
d2 = {k: v for item in l2 for k, v in item.items()} # same
_ = [d1[k].update(v) for (k, v) in d2.items()] # update each key in d1 with its corresponding value from d2
print(d1)
输出:
到目前为止,你尝试了什么?@music\u junkie目前我做的是使用嵌套for循环对项目进行迭代,当键匹配时,我将它们合并并添加到另一个列表中。我正在检查是否有一个优化的方法,而不是我正在使用的方法。我真是太傻了,对更新感到困惑!谢谢:)
{'Fvcm': {'name': 'FVCM', 'size': 8, 'Type': 'Z', 'map': 'Prim1'}, 'RPZM': {'name': 'RPZM', 'size': 8, 'Type': 'R', 'map': 'Prim2'}, 'ZAN': {'name': 'ZAN', 'size': 8, 'Type': 'P', 'map': 'Prim3'}}
l3 = []
for key in l1:
l3.append(key)
for key in l2:
l3.append(key)
print(l3)
output:
[
{'Fvcm':
{'name': 'FVCM',
'size': 8,
'Type': 'Z'}},
{'RPZM':
{'name': 'RPZM',
'size': 8,
'Type': 'R'}},
{'ZAN':
{'name': 'ZAN',
'size': 8,
'Type': 'P'}},
{'Fvcm':
{'name': 'FVCM',
'map': 'Prim1'}},
{'RPZM':
{'name': 'RPZM',
'map': 'Prim2'}},
{'ZAN':
{'name': 'ZAN',
'map': 'Prim3'}}
]