Python 类型错误:can';t将序列乘以类型为'的非整数;列表';当试图得到矩阵中元素的乘积时

Python 类型错误:can';t将序列乘以类型为'的非整数;列表';当试图得到矩阵中元素的乘积时,python,matrix,Python,Matrix,当我试图得到矩阵中每行和每列元素的乘积时,我得到了这个错误 TypeError: can't multiply sequence by non-int of type 'list' m[i][j]=m[i]*m[j]您的错误在于,请注意,m[i]是常规列表的列表。我们不能把两个常规列表相乘 为了处理常规列表,我们可以访问每个元素,计算乘积,然后将它们相加 m = [] number = int(input('Type a number for the limit of matrix:'))

当我试图得到矩阵中每行和每列元素的乘积时,我得到了这个错误

TypeError: can't multiply sequence by non-int of type 'list'

m[i][j]=m[i]*m[j]
您的错误在于,请注意,
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))

你的错误是,
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))

非常感谢。我不知道这个numpy功能,非常有用,谢谢。我不知道这个numpy功能,非常有用