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

Python二维列表字典值修改异常:单元素修改触发全矩阵更新

问题原因

你遇到的问题核心在于字典是可变对象——你循环中反复添加的都是同一个defval字典的引用,整个矩阵里的所有元素其实都指向内存中的同一个字典实例。所以只要修改任意一个元素的"val"值,所有元素的这个值都会同步变化,因为它们本质上是同一个东西。

解决方法

方法1:每次循环创建新字典

放弃复用同一个字典,在内层循环里每次都生成一个全新的字典实例:

matrix = []

for x in range(5):
  row = []
  for i in range(5):
    row.append({"val": False})
  matrix.append(row)

matrix[3][2]["val"] = True

方法2:使用字典的copy方法

如果需要基于初始的字典模板,可以每次添加它的浅拷贝来生成新实例:

defval = {"val": False}

matrix = []

for x in range(5):
  row = []
  for i in range(5):
    row.append(defval.copy())
  matrix.append(row)

matrix[3][2]["val"] = True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:50:27