我是python的新手,所以如果这是一个愚蠢的问题,我很抱歉。这是矩阵乘法的合法程序,但我不明白为什么它将错误列表索引抛出我的输入范围之外?
def matmult(a,b):
product=[[0 for i in range(len(a))] for j in range(len(b[0]))]
for i in range(len(a)):
for j in range(len(b[0])):
for k in range(len(b)):
product[i][j]+=a[i][k]*b[k][j]
return product
matmult([[1,1]],[[3,4],[5,6]])
答案 0 :(得分:1)
这是因为x
。产品列表为空,但您正在为其编制索引。这就是抛出product=[]
错误
改为
IndexError: list index out of range
这将为产品预先分配空间,以便您可以将其编入索引