對於我正在編寫的馬爾可夫鏈項目,我在頁面頂部生成錯誤。我知道這意味着我試圖調用一個整數對象的列表方法,這意味着我要麼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不是很有經驗,所以任何和所有的幫助都將不勝感激。
謝謝!
要麼'val'或' _adjMatrix'是一個'int',可能是'val' – CoryKramer
在這行'val = self._lookupVal [iVal]'中,因爲_lookupVal是一個字典,我們可以知道val是一個int。並且在這一行中:'self._adjMatrix [val [iVal]] [val [fVal]] + = 1',您將它用作列表。 –
*「不知道這是否皺眉或不」* - 後者,請參閱http://stackoverflow.com/help/mcve – jonrsharpe