2015-04-22 126 views
0

對於我正在編寫的馬爾可夫鏈項目,我在頁面頂部生成錯誤。我知道這意味着我試圖調用一個整數對象的列表方法,這意味着我要麼a)沒有正確初始化列表,或者b)在程序的某個點用一個整數值覆蓋列表。不過,我一直試圖調試幾個小時,無法在我的小程序中找到問題。的錯誤跟蹤如下:TypeError:'int對象沒有屬性'__getitem__'...但是在哪裏?

Traceback (most recent call last): 
    File "/Users/adamlind/PycharmProjects/Capstone/Song.py", line 9, in <module> 
    musicMarkov.add(["c", 4]) #row 
    File "/Users/adamlind/PycharmProjects/Capstone/Music.py", line 19, in add 
    self._markov.add(iNote[0], fNote[0]) 
    File "/Users/adamlind/PycharmProjects/Capstone/Markov.py", line 22, in add 
    self._adjMatrix[val[iVal]][val[fVal]] += 1 
TypeError: 'int' object has no attribute '__getitem__' 

這裏是包含我的項目的GitHub庫的鏈接(這是我的第一個StackOverflow上的問題,不知道這是令人難以接受與否): https://github.com/adamlind323/CSC493

我檢查了幾次,但無法弄清楚我覆蓋的地方。我對Python不是很有經驗,所以任何和所有的幫助都將不勝感激。

謝謝!

+0

要麼'val'或' _adjMatrix'是一個'int',可能是'val' – CoryKramer

+0

在這行'val = self._lookupVal [iVal]'中,因爲_lookupVal是一個字典,我們可以知道val是一個int。並且在這一行中:'self._adjMatrix [val [iVal]] [val [fVal]] + = 1',您將它用作列表。 –

+0

*「不知道這是否皺眉或不」* - 後者,請參閱http://stackoverflow.com/help/mcve – jonrsharpe

回答

0

val是int。嘗試索引(val[iVal])導致異常。

在線路#21你以下列方式intialize val

val = self._lookupVal[iVal] 

_lookupVal是在線路#11包含整數定義的字典(見行#14)

+0

我現在看到,謝謝!刪除[iVal],一切正常。我很感激幫助。 – adamlind323

相關問題