Py学习  »  Python

Python一次填充所有列表

Yunnerd • 3 年前 • 1346 次点击  

我用python编写这个函数是为了进行矩阵乘法,但由于某些原因,它不能按预期工作。代码在我看来很好,但python似乎正在填充矩阵中y位置的所有列表,我不明白它为什么这样做。

def maal(N, M):
a = []
b = []
for i in range(len(N)):
    a.append(0)
for j in range(len(M[0])):
    b.append(a)
for x in range(len(N)):
    for y in range(len(M[0])):
        for z in range(len(M)):
            b[x][y] += N[x][z] * M[z][y]
return b

print(maal([[5, 4, 32], [5, 6, 74]], [[1, 2], [4, 5], [7, 8]]))

#solution is b = [[245, 286],[547,632]]

我得到的结果是 [[792, 918], [792, 918]] 因为它会同时填满这两个列表。

有人能帮我吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128269
文章 [ 1 ]  |  最新文章 3 年前