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]*dfor 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