我有这个Python3.5代码:
8 class MarkovDict:
...
13 def add(self, corpus=None):
14 if corpus == None:
15 return
16 prev_word = corpus[0]
17 for word in corpus[1:]:
18 self.dict[prev_word].append(word)
...应该采用corpus,这是一个字符串列表。给出此错误:
Traceback (most recent call last):
File "main.py", line 23, in <module>
main()
File "main.py", line 17, in main
bot = MarkovBot(full_markov_dict)
File "/Users/jeremy/code/markov/MarkovBot.py", line 5, in __init__
self.forward_dict = markov_dict.cloned()
File "/Users/jeremy/code/markov/MarkovDict.py", line 27, in cloned
return MarkovDict(copy.deepcopy(self.dict))
File "/Users/jeremy/code/markov/MarkovDict.py", line 11, in __init__
self.add(corpus)
File "/Users/jeremy/code/markov/MarkovDict.py", line 17, in add
for word in corpus[1:]:
TypeError: unhashable type: 'slice'我遗漏了什么?
发布于 2016-10-28 05:08:53
您的corpus对象是字典而不是列表。当您尝试用切片索引字典时,它知道切片是一种无法使用的类型,永远不能添加到字典中,所以它会立即告诉您这一点。
https://stackoverflow.com/questions/40298357
复制相似问题