【问题描述】
请统计hamlet.txt文件中出现的英文单词情况,统计并输出出现最多的前n个单词,注意:
(1) 单词不区分大小写,即需将大写转换成小写;
(2) 请在文本中剔除如下特殊符号:!"#$%&()*+,-./:;<=>?@[\]^_‘{|}~
(3) 输出10个单词和其出现次数,每个单词一行;
(4) 输出单词为小写形式。
此题不涉及编码转换,若想指定编码 可在开始加上
#-- coding: utf-8 --
或 在文件打开处 指定编码
with open(“hamlet.txt”, “r”, encoding=‘utf-8’) as f:
........
........
【输入形式】
【输出形式】
以下仅是输出样例(仅列出3个,需要列出n个),不是最终结果:
the 1138
and 965
to 754
单词 左对齐,并占10个位置; 次数 右对齐,并占5个位置
【样例输入】
【样例输出】
【样例说明】
【评分标准】
f = open("hamlet.txt","r")
gets = f.read()
for ch in ":!#$%&()*+,-./:;<=>?@[\\]^_‘{|}~/""":
gets = gets.replace(ch," ")
gets = gets.lower()
words = gets.split()
ans = {}
for word in words:
ans[word] = ans.get(word,0)+1
res = list(ans.items())
res.sort(key=lambda x:x[1],reverse=True)
n = int(input())
for j in range(n):
word, count = res[j]
print("{0:<10}{1:>5}".format(word,count))