📅  最后修改于: 2023-12-03 15:28:43.401000             🧑  作者: Mango
主题:GATE-CS-2009 第60题
介绍:
该题目要求对一个给定的文本文件中的所有单词进行计数,并输出单词以及它们在文件中出现的次数。
我们需要采取以下步骤:
以下是Python实现的代码片段:
import string
# 读入文件并将标点符号、空格等过滤掉,只保留单词
with open("filename.txt", "r") as file:
text = file.read()
words = text.translate(str.maketrans('', '', string.punctuation)).split()
# 将单词转换为小写形式
words = [word.lower() for word in words]
# 使用字典记录每个单词出现的次数
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 按照字母表的顺序输出结果
for word in sorted(word_count.keys()):
print(word, word_count[word])
以上代码首先使用with
语句读入文本文件,并使用str.translate()
方法将标点符号和空格过滤掉,得到一个单词列表。随后使用列表解析将所有单词转换为小写形式,以便进行比较。
接下来,我们使用一个字典来记录每个单词出现的次数。如果单词已经在字典中,则将其次数加1;否则,我们将该单词添加到字典中,并将其出现次数初始化为1。
最后,使用sorted()
函数对字典的键进行排序,并输出各个单词以及它们出现的次数。
这段代码非常简洁,并且能够完成该题目的要求。