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)
没有意义。我们需要有关该问题的更多信息