首页 >后端开发 >Python教程 >如何在保留特定值的同时更新可变深度的嵌套字典?

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

DDD
DDD原创
2024-11-08 03:31:01461浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn