You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python合并字典时保留所有键的实现方法咨询

嵌套字典的深度更新问题

Python 标准库没有直接提供实现这种深度更新的内置方法——dict.update()是浅更新逻辑,遇到嵌套字典时会直接用新字典替换旧的嵌套字典,而非递归更新内部的键值对,这就是你遇到原有键被删除的原因。

要实现「仅覆盖重复键、保留原有非重复键」的需求,需要自定义更新逻辑,最常用的是写一个递归的深度更新函数:

def deep_update(target, source):
    for key, val in source.items():
        # 如果当前值是字典,且目标字典对应键也是字典,就递归更新内部
        if isinstance(val, dict) and key in target and isinstance(target[key], dict):
            deep_update(target[key], val)
        # 否则直接覆盖或新增键值对
        else:
            target[key] = val

# 测试示例
a = {"a": {"b": "bbb", "c": "ccc"}}
b = {"a": {"b": "aaa"}}
deep_update(a, b)
print(a)  # 输出: {'a': {'b': 'aaa', 'c': 'ccc'}}

这种递归方式能处理任意层级的嵌套字典,逻辑直观易懂。如果你的Python版本是3.11+,也可以结合循环简化实现,但递归依然是最通用的方案。

内容的提问来源于stack exchange,提问作者lazyguylalala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 11:19:52