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有很多嵌套键。