首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中迭代列表切片不像预期的那样工作

在Python中迭代列表切片不像预期的那样工作
EN

Stack Overflow用户
提问于 2016-10-28 05:05:47
回答 1查看 37关注 0票数 0

我有这个Python3.5代码:

代码语言:javascript
复制
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,这是一个字符串列表。给出此错误:

代码语言:javascript
复制
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'

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-28 05:08:53

您的corpus对象是字典而不是列表。当您尝试用切片索引字典时,它知道切片是一种无法使用的类型,永远不能添加到字典中,所以它会立即告诉您这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40298357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档