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

Python嵌套字典拷贝疑问:copy.copy为何修改新字典会影响原字典?

解决嵌套字典的深拷贝问题

你遇到的问题是因为copy.copy()属于浅拷贝——它仅复制外层字典的键值对,但内层的子字典仍然是原字典的引用。修改子字典时,原字典自然会跟着变化。

要完全复制嵌套字典的所有层级,让新字典和原字典彻底独立,你需要使用copy.deepcopy(),它会递归复制所有嵌套的可变对象:

from copy import deepcopy
a = {"1": {"1":2, "2":3}, "2":{"3":4, "4":5}}
b = deepcopy(a)
b["1"].update({"4":3})
# b == {"1": {"1":2, "2":3, "4":3}, "2":{"3":4, "4":5}}
# a == {"1": {"1":2, "2":3}, "2":{"3":4, "4":5}} 原字典保持不变

不管嵌套结构里是字典、列表还是其他可变类型,deepcopy()都会逐层创建新的实例,确保修改拷贝后的对象不会影响原对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:45:33