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

嵌套字典值更新为何同步到父字典?Python字典引用疑问

Python嵌套字典的引用行为解析

Python里确实没有指针,但变量存储的是对象的引用,这就是你看到现象的核心原因。

两种操作的本质区别

  1. 重新赋值变量
    当你执行dict1 = {'k2':'v2'}时,你只是把dict1这个变量指向了一个全新的字典对象,原来的{'k1':'v1'}对象并没有被改动。此时dict2里的'dict'键依然指向原来的那个旧字典,所以打印dict2时内容不变。

  2. 修改对象本身
    当你执行dict1['k1']='changed value'时,你并没有改变dict1指向的对象,而是通过dict1的引用,直接修改了它所指向的那个字典对象的内部数据。因为dict2里的'dict'键和dict1指向的是同一个字典对象,所以这个修改会同步反映在dict2中。

通俗理解

可以把变量看作贴在对象上的标签:

  • 重新赋值变量 = 把标签从一个对象揭下来,贴到另一个新对象上
  • 修改对象内容 = 通过标签找到对应的对象,直接修改对象内部的东西

这样就不难理解为什么两种操作会有完全不同的结果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 13:35:01