top_word = [x[1] for x in word_count_sorted[:20]] TypeError: unhashable type: 'slice'
时间: 2023-12-29 16:02:50 浏览: 103
这个错误通常是由于使用了不可哈希的对象作为列表切片的参数导致的。在Python中,列表切片的参数需要是整数类型,不能是不可哈希的对象。
在您的代码中,出现这个错误可能是因为您尝试将一个不可哈希的对象作为列表切片的参数。请检查您的代码并确保您使用的切片参数是整数类型。如果您仍然无法解决问题,请提供更多的代码和错误信息,以便我可以更好地帮助您。
相关问题
报 top_words = [x[0] for x in word_count_sorted.values[:20]] TypeError: 'builtin_function_or_method' object is not subscriptable 原因,给出解决方法
这个错误提示意味着 `word_count_sorted.values` 是一个内置函数或方法对象,不能进行切片操作。可能是在使用 `values()` 方法时出现了错误。
解决方法是将 `values()` 方法改为 `items()` 方法,这样可以获得一个包含所有键值对的元组列表。然后对这个列表进行排序并取出前20个元素的键值(即单词),这样就可以避免这个错误了。修改后的代码如下:
```
word_count_sorted = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
top_words = [x[0] for x in word_count_sorted[:20]]
```
top_words = [x[0] for x in word_count_sorted[:20]] print('即将出现前20个词频') for word in top_words: print(f'{word}: {word_count[word]}'),这段代码如何理解
这段代码可以理解为:
1. `word_count_sorted` 是一个按照单词出现频率从高到低排序的列表。
2. `word_count_sorted[:20]` 取出前 20 个频率最高的单词及其出现次数,保存为一个新的列表。
3. `top_words = [x[0] for x in word_count_sorted[:20]]` 则是取出这 20 个单词并保存到 `top_words` 列表中。
4. `print('即将出现前20个词频')` 输出提示信息。
5. `for word in top_words: print(f'{word}: {word_count[word]}')` 循环遍历 `top_words` 列表,分别取出每个单词,并输出该单词在文本中的出现次数。
阅读全文