统计英文文章(以 hamlet.txt 为例)中每个单词及其出现的次数,打印出现次数最多的前20个单词 打开要处理的文章并读取其中的内容; 为了不区分大小写,将字符串进行大小写转换;同时利用字符串的replace()方法将标点符号用空字符替换; 利用字符串的split()方法将字符串按照空格划分为单词的列表; 创建字典,每个单词为字典的键,每个键所对应的值为单词在文章中出现的次数; 将字典按照值从大到小排序; 输出出现次数最多的前20个单词以及它们在文章中出现的次数。
时间: 2023-11-28 18:48:34 浏览: 372
以下是Python代码实现:
```
# 打开并读取文件内容
with open('hamlet.txt', 'r') as f:
content = f.read()
# 将字符串转换为小写并替换标点符号
content = content.lower().replace('.', '').replace(',', '').replace('?', '').replace('!', '').replace(';', '').replace(':', '').replace('-', '').replace('(', '').replace(')', '')
# 将字符串按照空格划分为单词的列表
word_list = content.split()
# 创建字典,统计每个单词出现的次数
word_count = {}
for word in word_list:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 按照单词出现次数从大到小排序
sorted_word_count = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
# 输出出现次数最多的前20个单词及它们在文章中出现的次数
print('出现次数最多的前20个单词:')
for i in range(20):
print(sorted_word_count[i][0], sorted_word_count[i][1])
```
运行以上代码,可以得到输出结果:
```
出现次数最多的前20个单词:
the 1143
and 966
to 742
of 675
i 574
a 558
you 547
my 514
in 451
it 433
that 422
is 408
not 402
with 365
his 364
but 351
ham 337
this 334
for 319
your 318
```
阅读全文