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

Python矩阵(列表的列表)赋值异常:修改元素时整列被改变

矩阵赋值异常问题解析

你写的代码里,问题出在这行:

m = [[0]*n]*n

这种方式创建的矩阵,所有行其实是同一个列表对象的引用。也就是说,[0]*n生成了一个包含n个0的列表,然后*n只是把这个列表的引用重复了n次放进外层列表里,并不是创建n个独立的新列表。

所以当你执行m[0][0] = 1时,你修改的是那个唯一的底层列表的第一个元素,外层列表里的所有行(其实都是这个列表的引用)自然都会显示这个变化,就出现了整列被修改的情况。

正确写法

用列表推导式创建矩阵,确保每一行都是独立的新列表:

def id_mtrx(n):
    m = [[0]*n for _ in range(n)]
    m[0][0] = 1
    return m

这样执行后,返回的结果就是你预期的:

[[1, 0], [0, 0]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:20:33