我正在按照课堂作业的指示做作业,我应该在一个文本文件中查找前200个最常用的单词。
下面是代码的最后一部分:
fdist1 = FreqDist(NSmyText)
vocab=fdist1.keys()
vocab[:200]
但当我在vocab 200行后按enter时,它会返回:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'dict_keys' object is not subscriptable
关于如何解决这个问题以便正确返回答案的建议?
看起来你在使用Python 3。在Python 3中,
dict.keys()
返回一个可iterable但不可索引的对象。最简单(但效率不高)的解决方案是:我正在使用
python 3.5
,我遇到了TypeError
的相同问题。使用
vocab = list(fdist1.keys())
不会给出前50个最常用的单词。但是
fdist1.most_common(50)
是的。此外,如果您只想显示前50个单词,而不是它们的频率,您可以尝试:
[word for (word, freq) in fdist1.most_common(50)]
要打印最常用的200个单词,请使用: 最常见(200) 上面的代码行将返回200个最常用的单词作为密钥频率对。
相关问题 更多 >
编程相关推荐