Python 类型错误:';列表';对象不能解释为整数
如何修复Python 类型错误:';列表';对象不能解释为整数,python,matrix-multiplication,Python,Matrix Multiplication,如何修复类型错误:“list”对象不能解释为整数?不确定如何修复此错误。不获取“列表”的含义对象不能解释为整数 def minmult(n,d): m = [[0 for x in range(n)] for x in range(n)] s = [[0 for x in range(n)] for x in range(n)] for i in range(1, n): m[i][i] = 0 s[i][i] = 0 for
类型错误:“list”对象不能解释为整数
?不确定如何修复此错误。不获取“列表”的含义对象不能解释为整数
def minmult(n,d):
m = [[0 for x in range(n)] for x in range(n)]
s = [[0 for x in range(n)] for x in range(n)]
for i in range(1, n):
m[i][i] = 0
s[i][i] = 0
for diagonal in range(1, n-1):
m[i][j] = sys.maxsize
for i in range(n-diagonal):
j=i+diagonal
temp = m[i][k] + m[k+1][j] + d[i-1]*d[k]*d[j]
if temp < m[i][j]:
m[i][j] = q
s[i][j]=k
pprint(m)
pprint(s)
return m[1][n-1]
array=[10,4,5,20,2,50]
size = len(array)
print(str(minmult(array,size)))
def minmult(n,d):
m=[[0代表范围(n)中的x]代表范围(n)中的x]
s=[[0代表范围(n)中的x]代表范围(n)中的x]
对于范围(1,n)内的i:
m[i][i]=0
s[i][i]=0
对于范围(1,n-1)内的对角线:
m[i][j]=sys.maxsize
对于范围内的i(n-对角线):
j=i+对角线
温度=m[i][k]+m[k+1][j]+d[i-1]*d[k]*d[j]
如果温度
错误在这一行:
m = [[0 for x in range(n)] for x in range(n)]
由于您将n
作为列表传递给minmult
,并且range
需要一个整数,因此您得到了一个错误
正如注释所述,在编写代码时,您希望将调用更改为:
minmult(size,array)
没有理由传递数组的大小,因为您可以在函数中确定它…我认为参数传递的顺序是错误的
n
应该是列表的长度,而d
是列表本身。(不过,想一想,如果可以从列表中推断出长度,那么更具python风格的方法根本不会传递长度。)那么我该如何修复这一行呢?根据@Blckknght的评论和您的问题更新答案。错误在哪一行?您的信息比我们多。n
是一个列表
,而范围(n)
没有意义。我们需要有关该问题的更多信息