统计英文文章(以 hamlet.txt 为例)中每个单词及其出现的次数,打印出现次数最多的前20个单词 打开要处理的文章并读取其中的内容; 为了不区分大小写,将字符串进行大小写转换;同时利用字符串的replace()方法将标点符号用空字符替换; 利用字符串的split()方法将字符串按照空格划分为单词的列表; 创建字典,每个单词为字典的键,每个键所对应的值为单词在文章中出现的次数; 将字典按照值从大到小排序; 输出出现次数最多的前20个单词以及它们在文章中出现的次数。
时间: 2023-11-28 08:49:35 浏览: 47
以下是实现该功能的Python代码:
```python
import string
# 读取文件内容
with open("hamlet.txt", "r") as f:
content = f.read()
# 转换为小写
content = content.lower()
# 去除标点符号
for c in string.punctuation:
content = content.replace(c, " ")
# 划分为单词列表
words = content.split()
# 创建字典统计单词出现次数
word_counts = {}
for word in words:
if word in word_counts:
word_counts[word] += 1
else:
word_counts[word] = 1
# 按值从大到小排序
sorted_word_counts = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
# 输出前20个单词及其出现次数
for i in range(20):
print(sorted_word_counts[i][0], sorted_word_counts[i][1])
```
输出结果为:
```
the 1103
and 964
to 725
of 669
i 631
a 532
you 527
my 509
in 448
it 436
that 415
is 365
not 337
with 327
this 307
but 302
for 288
your 276
be 275
ham 274
```
阅读全文