【发布时间】:2018-02-22 14:43:48
【问题描述】:
我是 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]])
【问题讨论】:
-
对于谁否决了这个问题,这个人是在明确说明她是 python 新 之后提出的。请不要那么敌对。从前我们都是新人,犯过这样的错误。
-
@SagarBHathwar 谢谢 :)
-
@SagarBHathwar 它不适用于非正方形矩阵
-
道歉。我已经更正了我的答案。我已经切换了初始化顺序。另外,确保
len(a[0]) == len(b)使函数不会为不合格的矩阵返回垃圾
标签: python list function matrix matrix-multiplication