对于我写的马尔可夫链项目,我在页面顶部生成错误。我知道这意味着我试图在整数对象上调用list方法,这意味着我要么a)没有正确初始化列表,要么b)在程序的某个点覆盖带有整数值的列表。但是,我一直试图调试这几个小时,在我的小程序中找不到问题。错误跟踪如下:
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 :(得分:0)
val
是int。尝试索引(val[iVal]
)会导致异常。
在第21行,您可以通过以下方式初始化val
:
val = self._lookupVal[iVal]
_lookupVal
是第11行定义的字典,包含整数(参见第14行)