2015-11-05 86 views
-3

如何修復TypeError: 'list' object cannot be interpreted as an integer?不知道如何解決這個錯誤。不要什麼是「名單」對象手段不能被解釋爲一個整數TypeError:'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))) 
+0

哪一行是錯誤?你比我們擁有更多的信息。 –

+0

'n'是一個'list',而'range(n)'沒有意義。 –

+0

我們需要關於這個問題的更多信息 –

回答

0

的錯誤是在這條線:

m = [[0 for x in range(n)] for x in range(n)] 

既然你在n傳遞給minmult作爲一個列表, range需要一個整數,你會得到一個錯誤。

正如評論說,併爲您的代碼編寫,你希望將電話更改爲:

minmult(size,array) 

沒有理由來傳遞數組的大小,你可以在函數中確定它。 ..

+2

我認爲參數傳遞的順序是錯誤的。 'n'應該是列表的長度,而'd'是列表本身。 (但是,想一想,如果可以從列表中推導出來,更多Pythonic方法會跳過這個長度。) – Blckknght

+0

然後我會如何修復那條線? – john

+0

回答基於@ Blckknght的評論和你的問題更新。 – AlG

相關問題