python 用列表做矩阵的乘法,循环内发生错误

python 用列表做矩阵的乘法,循环内发生错误

R = [[1.0, 2.0], [1.0, 1.0]]
T = [[1.0, 1.0], [1.0, 1.0]]
a = len(R)
b = len(R[1])
c =len(T)
d = len(T[1])
print(a,b,c,d)
if b != c:

print ("error")

else :

P = [[0]*a]*d

for i in range(a):

for j in range(d):

for k in range(b):

print("k为")

print(i,j,k)

P[i][j] += R[i][k]*T[k][j]

print(P)


0 0 0
[[1.0, 0], [1.0, 0]]
0 0 1
[[3.0, 0], [3.0, 0]]
0 1 0
[[3.0, 1.0], [3.0, 1.0]]
0 1 1
[[3.0, 3.0], [3.0, 3.0]]
1 0 0
[[4.0, 3.0], [4.0, 3.0]]
1 0 1
[[5.0, 3.0], [5.0, 3.0]]
1 1 0
[[5.0, 4.0], [5.0, 4.0]]
1 1 1
[[5.0, 5.0], [5.0, 5.0]
每次赋值都赋给给了下一行的元素,请问一下是哪里错了呢

题目描述

题目来源及自己的思路

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?


回答:

P = [[0]a]d 改成 P = [ [0] * d for i in range(a) ]

以上是 python 用列表做矩阵的乘法,循环内发生错误 的全部内容, 来源链接: utcz.com/a/157339.html

回到顶部