如何在保留特定值的同时更新可变深度的嵌套字典?

DDD
发布: 2024-11-08 03:31:01
原创
337 人浏览过

How to Update Nested Dictionaries of Variable Depth While Preserving Specific Values?

更新可变深度的嵌套字典

尝试使用另一个字典的内容更新嵌套字典 (dictionary1) 时遇到困境(更新),同时保留嵌套结构中的特定值。具体来说,您希望更新字典1中的“level2”键而不覆盖“levelA”值。

为了解决这一挑战,提出了一种递归解决方案。以下Python代码实现了这种方法:

def merge_dicts(dict1, dict2):
    for key in dict2:
        if key in dict1 and isinstance(dict1[key], dict) and isinstance(dict2[key], dict):
            merge_dicts(dict1[key], dict2[key])
        else:
            dict1[key] = dict2[key]
登录后复制

该函数递归遍历两个字典并根据以下规则更新值:

  • 如果两个键都存在于两个字典中并且是字典本身,该函数递归调用自身,合并嵌套字典。
  • 否则,dict2 中的值将分配给 dict1。

通过利用这种递归方法,您可以修改嵌套字典不同深度的字典,同时保留特定值。

以上是如何在保留特定值的同时更新可变深度的嵌套字典?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!