目录
题目简述
【问题描述】 编写程序统计一个英文文本文件中每个单词的出现次数(词频统计),并将统计结果按单词字典序输出到屏幕上。 注:在此单词为仅由字母组成的字符序列。包含大写字母的单词应将大写字母转换为小写字母后统计。
【输入形式】 打开当前目录下文件“article.txt”,从中读取英文单词进行词频统计。
【输出形式】 程序将单词统计结果按单词字典序输出到屏幕上,每行输出一个单词及其出现次数,单词和其出现次数间由一个空格分隔,出现次数后无空格, 直接为回车。
【样例输入】 当前目录下文件article.txt内容如下: “Do not take to heart every thing you hear."“Do not spend all that you have." “Do not sleep as long as you want,”
【样例输出】
all 1
as 2
do 3
every 1
have 1
……
代码编写
Python代码实现
import re
def word_count(file_path):
# 创建一个空字典以存储单词频率
word_dict = {}
# 打开文件并逐行读取
with open(file_path, 'r', encoding='utf-8') as file:
# 遍历文件中的每一行
for line in file:
# 使用正则表达式在行中查找所有单词(忽略大小写)
words = re.findall(r'\b\w+\b', line.lower())
# 遍历每个单词并在字典中更新单词频率
for word in words:
word_dict[word] = word_dict.get(word, 0) + 1