当我尝试获取矩阵的每一行和每一列中元素的乘积时,出现此错误。
TypeError: can't multiply sequence by non-int of type 'list'
m[i][j] = m[i] * m[j]
< -在此行中我尝试属性到这个位置,元素的乘法的产品i
,并j
在那个位置,但我得到了这个问题。我在哪里想念?
m = []
number = int(input('Type a number for the limit of matrix:'))
for i in range(number):
line = []
for j in range(number):
line.append(int(input('Type a value for[' + str(i) +','+ str(j) +']:')))
m.append(line)
for i in range(number):
for j in range(number):
m[i][j] = m[i] * m[j]
for i in range(number):
print(m[i])
您的错误是该注释m[i]
是常规列表的列表。我们不能只将两个常规列表相乘。
要仅使用常规列表,我们可以访问每个元素,计算乘积并对其求和。
m = []
number = int(input('Type a number for the limit of matrix:'))
for i in range(number):
line = []
for j in range(number):
line.append(int(input('Type a value for[' + str(i) +','+ str(j) +']:')))
m.append(line)
m2 = [[0]* number for i in range(number)]
for i in range(number):
for j in range(number):
m2[i][j] = sum(m[i][k] * m[k][j] for k in range(number))
for i in range(number):
print(m2[i])
另外,您可能希望使用更高级的工具,例如numpy array。
import numpy as np
m = []
number = int(input('Type a number for the limit of matrix:'))
for i in range(number):
line = []
for j in range(number):
line.append(int(input('Type a value for[' + str(i) +','+ str(j) +']:')))
m.append(line)
m = np.array(m)
print(np.dot(m, m))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句