"Python 3 中的 TypeError: 'map' 对象不可指定错误"

2024-05-14 17:08:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用FreqDist,它是Python中NLTK的一部分。 我试过这个示例代码:

fdist1 = FreqDist(text1)
vocabulary1 = fdist1.keys()
vocabulary1[:50]

但最后一行给了我一个错误:

TypeError: 'map' object is not subscriptable

我认为代码在Python2上运行良好,但在Python3上(我有)出现了上述错误。

为什么会出现这个错误,如何解决?我很感激你的帮助。


Tags: 代码示例mapobjectis错误notkeys
2条回答

在Python 3中,.keys()返回一个迭代器,不能对其进行切片。在切片之前将其转换为列表。

fdist1 = FreqDist(text1)
vocabulary1 = fdist1.keys()
x = list(vocabulary1)[:50]
# or...
vocabulary1 = list(fdist1.keys())
x = vocabulary1[:50]

必须先将其转换为列表:

new_vocab= list(vocabulary1)
...= new_vocab[:50]

相关问题 更多 >

    热门问题