python - 更新Python字典而不覆盖子字典的通用方法

标签 python dictionary nested

是否有任何通用方法可以更新 python 字典而不覆盖子字典。 字典是动态生成的,因此无法提前预测级别、深度或子 key 。

考虑以下两个字典是动态生成的 -

d1 = {'a' : { 'b' : 'c'} }
d2 = {'a' : { 'd' : 'e'} }

如果我调用更新函数,结果将是这样的 d1.更新(d2) 打印d1

结果=

{'a': {'d': 'e'}}

预期结果=

{'a': {'b': 'c', 'd': 'e'}}

以上词典仅作为示例。字典可以是动态生成的任何级别。因此,如果有的话,请提供 python 的内置函数..或其他方式。

最佳答案

def update(d1,d2):
    c = d1.copy()
    for key in d2:
        if key in d1:c[key].update(d2[key])
        else:c[key] = d2[key]
    return c

关于python - 更新Python字典而不覆盖子字典的通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093793/

相关文章:

Python检查列表中的任何元素是否是字典中的键

c# - 用 c# 编写 mp3 播放器,使用字典或数组作为元数据?

python - 在Azure云上部署Python Web Scraping文件(函数应用程序)

python - 在本地测试 Google Cloud 和 Azure 的应用程序

c# - 不可能在字典中返回 IEnumerable 的子类型

xaml - 将值从父 View 模型传递或获取到 subview 模型?

c# - 如何使用 AutoMapper 将 Dto 映射到具有嵌套对象的现有对象实例?

html - 如果外部 div 太小,内部 div 滚动?

python - 如何从 [0,1] 生成随机数?

python - 在 Python 中使用异步