Python 如何防止dict.update(new_dict)添加空数据?
假设我有一本字典定义为:Python 如何防止dict.update(new_dict)添加空数据?,python,dictionary,nested,Python,Dictionary,Nested,假设我有一本字典定义为: dict_1['x']['y'] = 'something' dict_2['x'] = {} dict_2['x']['z'] = 'something else' 另一本词典定义为: dict_1['x']['y'] = 'something' dict_2['x'] = {} dict_2['x']['z'] = 'something else' 我怎样才能做到这一点 dict_1.update(dict_2)只添加dict_2['x']['z']='
dict_1['x']['y'] = 'something'
dict_2['x'] = {}
dict_2['x']['z'] = 'something else'
另一本词典定义为:
dict_1['x']['y'] = 'something'
dict_2['x'] = {}
dict_2['x']['z'] = 'something else'
我怎样才能做到这一点
dict_1.update(dict_2)
只添加dict_2['x']['z']='something'
,但不删除dict_1['x']['y']
,因为dict_2['x']={}。这就递归地解决了问题
dict_1['x'].update(dict_2['x'])
def mergeDicts(dict1, dict2):
for key in dict2:
if key in dict1:
dict1[key] = mergeDicts(dict1[key], dict2[key])
else:
dict1[key] = dict2[key]
return dict1
也许更简单一点?这在我的代码中是非常详尽的,是因为你的dict_1有多个键吗?这个答案出现在低质量的审查队列中,大概是因为你没有解释代码。如果你解释了(在你的答案中),你就更有可能获得更多的选票,提问者也更有可能学到一些东西!我认为他个人的回答很好。是的,我的dict_1有很多嵌套键。