为什么在Python中嵌套具有显式索引(类似于javascript)的矩阵迭代会导致IndexError?

时间:2018-07-24 15:23:26

标签: python-3.x

我需要与此javascript代码等效的代码:

var a = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]];
var b = [[6,8,3],[0,9,6],[1,8,4],[5,1,3]];
var r = [[0,0,0],[0,0,0],[0,0,0],[0,0,0]];
var rows=4;
var cols=3;
for(var i = 0; i < rows; i++){
        for(var j = 0; j < cols; j++){
            r[i][j] += a[i][j] * b[j][i];
        }
}

所以我创建了以下Python代码:

a = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
b = [[6,8,3],[0,9,6],[1,8,4],[5,1,3]]
r = [[0,0,0],[0,0,0],[0,0,0],[0,0,0]]
rows=4
cols=3
for i in range(rows):
        for j in range(cols):
            r[i][j] += a[i][j] * b[j][i]

但是不幸的是,在Python中,这种方法似乎行不通,并且我的代码因IndexError: list index out of range而崩溃 在行中

r[i][j] += a[i][j] * b[j][i]

为什么会这样?

1 个答案:

答案 0 :(得分:0)

我认为,发生这种情况是因为您写了b[j][i],但正确的是b[i][j]