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

Python二维列表值复制异常:所有行均为最后一行的原因

二维列表复制异常的原因解释

你遇到的问题核心出在初始化R的这行代码:

R=[[0]*3]*3

这行代码没有创建3个独立的子列表,它的实际逻辑是:

  • 先创建一个包含3个0的列表 [0,0,0]
  • 然后让R的3个元素全部指向这个同一个列表的引用

也就是说,R[0]、R[1]、R[2]其实是同一个列表的不同名字而已。

再看你的循环:
当i=0时,你修改R[0][j],本质是在修改那个唯一的子列表;
当i=1时,修改R[1][j]还是在改同一个子列表;
最后i=2时,你把这个子列表的所有元素改成了p的最后一行[0.14, 0.1, 1],所以最终R的三行自然全是这个值——因为它们本来就是同一个东西。

如果要创建真正独立的二维列表,应该用列表推导式:

R = [[0]*3 for _ in range(3)]

这种写法会循环3次,每次都新建一个[0,0,0]的子列表,这样R的每一行都是独立的,再执行你的复制循环就会得到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 23:47:03