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

Python如何将修改后的字典存入变量且不受原字典后续变更影响

问题原因

Python中的字典属于可变对象,你代码中dict_to_return = dictionary的操作并没有创建新的字典,只是给内存里的同一个字典对象绑定了新的变量名。因此不管通过哪个变量名修改字典内容,所有指向该对象的变量读取到的都会是修改后的值,这就是dict_save和原字典同步变更的原因。

解决方法

要保存独立的字典副本,需要显式执行拷贝操作,根据字典结构选择对应方案:

  • 如果你使用的是单层字典,且所有值都是数字、字符串、元组这类不可变类型,用浅拷贝即可:

    def increase_values(dictionary):
        # 调用copy方法生成原字典的浅拷贝
        dict_to_return = dictionary.copy()
        dict_to_return[5] = 3
        return dict_to_return
    

    也可以用dict_to_return = dict(dictionary)实现同样的浅拷贝效果,注意不要用dict作为自定义变量名,否则会覆盖Python内置的dict构造函数。

  • 如果字典存在嵌套的列表、子字典等可变对象,需要用深拷贝保证完全独立:

    import copy
    
    def increase_values(dictionary):
        # 深拷贝会递归复制所有层级的可变对象,和原字典完全无关联
        dict_to_return = copy.deepcopy(dictionary)
        dict_to_return[5] = 3
        return dict_to_return
    

修改后再修改原字典的值,dict_save会保留修改前的保存值,不会同步变更。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:21:02