我是python的新手,我尝试使用循环在2维列表中存储整数值(我在C中使用此逻辑来获取矩阵的输入)。当我运行此代码时,它显示 IndexError:列表分配索引超出范围。是什么导致了这个错误 代码以矩阵形式打印1-9的数字:
num=1
a=[[]]
for i in range(0,3):
for j in range(0,3):
a[i][j]=num
++num
for i in range(0,3):
for j in range(0,3):
print(a[i][j]+" ")
print("\n")
答案 0 :(得分:0)
您需要使用append
动态分配内存。另外,++num
不会按照您的想法执行,您需要num += 1
。
num=1
a = []
for i in range(0,3):
a.append([])
for j in range(0,3):
a[i].append(num)
num += 1
for i in range(0,3):
for j in range(0,3):
print(str(a[i][j]) + " ", end="")
print("\n")
另外,你应该看一下numpy库,它使矩阵运算和线性代数变得简单,高效和优化。 numpy中的等效代码是:
import numpy as np
mat = np.arange(1,10).reshape(3,3)
print(mat)