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

Python循环中列表追加异常:matrix_of_ones结果不符预期求助

问题原因分析

核心问题是Python中列表属于可变对象,你在循环里反复修改并添加同一个inner_matrix的引用到matrix_of_ones中。

具体过程是:

  • 你初始化了一个inner_matrix列表,所有后续操作都是在这个列表的内存地址上修改内容
  • 每次循环把inner_matrix添加到matrix_of_ones时,并没有复制新的列表,只是把这个列表的引用存了进去
  • 循环结束后,matrix_of_ones里的所有元素都指向同一个内存地址的列表,所以最终所有行都会是最后一次修改后的inner_matrix状态,和预期的逐行不同的矩阵不符
解决方法

每次循环都创建一个新的inner_matrix,避免复用同一个列表引用:

# 错误写法(复用同一个列表)
matrix_of_ones = []
inner_matrix = [0,0,0]
for i in range(3):
    inner_matrix[0] = i
    matrix_of_ones.append(inner_matrix)

# 正确写法(每次循环新建列表)
matrix_of_ones = []
for i in range(3):
    inner_matrix = [i, 0, 0]  # 每次循环创建全新列表
    matrix_of_ones.append(inner_matrix)

也可以用列表推导式更简洁地实现:

matrix_of_ones = [[i, 0, 0] for i in range(3)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:10:30