Python矩阵标量乘法运行报'int' object is not subscriptable错误求助
错误原因分析
错误的核心触发点是代码第8行的变量覆盖问题:
- 初始状态下
mat1是存储矩阵的二维列表类型 - 第一层循环第一次执行(i=0、j=0)时,
mat1=mat1[i][j] * k语句会把整个mat1变量重新赋值为单个整数(矩阵第一个元素乘k的结果) - 当循环进入下一轮,再次执行
mat1[i][j]取值操作时,此时mat1已经是整数类型,不支持下标索引访问,直接抛出TypeError: 'int' object is not subscriptable错误。
修正方案
只需要修改第8行的赋值逻辑,不要覆盖整个mat1变量,改为对矩阵的单个元素赋值即可,基于原代码最小改动的完整可运行代码如下:
n,m,k=map(int,input().split()) mat1=[] for i in range(n): mat1.append(list(map(int,input().split()))) for i in range(n): for j in range(m): mat1[i][j] = mat1[i][j] * k for i in range(n): for j in range(m): print(mat1[i][j],end=" ") print()
内容的提问来源于stack exchange,提问作者JAVVADI GUNIN RUTHWI
相关产品推荐
相关产品推荐

