我有两个具有相同主密钥的嵌套字典:
dict1 = {'person1': {'name': 'John', 'sex': 'Male'},
'person2': {'name': 'Marie', 'sex': 'Female'},
'person3': {'name': 'Luna', 'sex': 'Female'},
'person4': {'name': 'Peter', 'sex': 'Male'}}
dict2 = {'person1': {'weight': '81.1', 'age': '27'},
'person2': {'weight': '56.7', 'age': '22'},
'person3': {'weight': '63.4', 'age': '24'},
'person4': {'weight': '79.1', 'age': '29'}}
所以我想用dict2中的键值对丰富dict1。
我可以用一个for循环来实现...
for key in dict2:
dict2[key]['age'] = dict1[key]['age']
dict2[key]['weight'] = dict2[key]['weight']
结果:
dict2 = {'person1': {'name': 'John', 'sex': 'Male', 'weight': '81.1', 'age': '27'},
'person2': {'name': 'Marie', 'sex': 'Female', 'weight': '56.7', 'age': '22'},
'person3': {'name': 'Luna', 'sex': 'Female', 'weight': '63.4', 'age': '24'},
'person4': {'name': 'Peter', 'sex': 'Male', 'weight': '79.1', 'age': '29'}}
......但是否有更深奥的方法来做到这一点--例如,使用法令理解?
2条答案
按热度按时间dfuffjeb1#
有:
首先,使用
.items()
同时迭代键和值。然后,对于每个键
k
,您希望其值是通过转储(或解构)其中的v
和dict2[k]
而创建的新dict。感谢@mwo提到管道
|
操作数:wh6knrhe2#
如果您可以控制数据源,请展开字典,然后使用
update
方法。例如:处理这种数据结构要容易得多,但是如果您坚持使用嵌套字典,则可以使用
NestedDict
以类似的接口实现相同的结果。一个二个一个一个
如果需要结果作为字典,请使用
nd1.to_dict()
。要安装ndicts
pip install ndicts
。