编写程序,输入多行英文句子,对每个单词计数,并保存到字典类型map1中。查看map1的内容。按照单词出现的次数从高到低排序,并查看排序后的结果。提示:因为字典类型无法排序,因此需将其转为列表类型再排序。用python,写出一个完整代码
时间: 2024-09-24 14:20:10 浏览: 38
当你需要编写Python程序来处理这个需求,可以使用collections模dule中的Counter类来快速计数单词,然后将字典转换成列表以便排序。这是一个完整的示例:
```python
from collections import Counter
# 输入多行英文句子
sentences = []
while True:
sentence = input("请输入一个英文句子(输入'q'退出):")
if sentence.lower() == 'q':
break
sentences.append(sentence)
# 对每个单词计数
word_counts = Counter(' '.join(sentences).split())
# 查看原始map1内容
print("\n原始词频字典:")
for word, count in word_counts.items():
print(f"{word}: {count}")
# 将字典转换为列表并排序
sorted_word_counts = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
# 查看排序后的结果
print("\n按词频降序排列的结果:")
for word, count in sorted_word_counts:
print(f"{word}: {count}")
```
在这个代码中,我们首先获取用户的输入作为字符串,然后使用空格分割得到单词列表,通过`Counter`计算每个单词的频率。接着,我们将计数字典转换为元组列表并按照第二个元素(频率)进行排序。最后,显示排序前后的词频统计。
阅读全文