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

二维矩阵元素更新异常:循环赋值后值未生效原因咨询

循环赋值后矩阵元素未更新的原因及解决方法

先看你的代码:

n = 5
k = 6

matrix = [[j for i in range(n)] for j in range(k)]

for element in matrix[3]:
    print(element)
    element = 100

print(matrix)

核心原因

你在循环里操作的element只是原列表元素的临时变量,并非直接指向原列表的位置。当执行element = 100时,只是让这个临时变量绑定了新的整数100,完全没有改动原列表里的元素。

另外Python的整数属于不可变类型,你没法直接修改一个整数对象本身的值,只能让变量重新指向新的对象。遍历列表时拿到的element只是原元素的一个"拷贝引用",修改它不会对原列表产生任何影响。

正确的修改方式

要修改原列表的元素,得通过索引定位到具体位置再赋值:

n = 5
k = 6

matrix = [[j for i in range(n)] for j in range(k)]

# 遍历索引,直接修改原列表对应位置的元素
for idx in range(len(matrix[3])):
    print(matrix[3][idx])
    matrix[3][idx] = 100

print(matrix)

这样运行后,matrix[3](第4行)的所有元素就会变成100了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:35:19