📜  门|门 IT 2008 |第 75 题(1)

📅  最后修改于: 2023-12-03 15:42:22.191000             🧑  作者: Mango

门|门 IT 2008 |第 75 题

题目描述

本题目要求编写一个程序,接受一个文件名作为参数,统计文件中不同的单词数目,并按照字典序输出每个单词及其出现次数。

输入输出格式

输入格式:

一个文件名,文件名不含空格。

输出格式:

按字典序输出每个单词及其出现次数,每个单词和数字用一个空格隔开,每个单词及其出现次数占一行。输出的单词需按照字典序排列。

样例

输入:

input.txt

输出:

a 2
apple 3
is 1
orange 1
this 1
代码实现

本题的关键点在于如何读取文件中的单词,并统计它们出现的次数。下面是一个Python实现的例子:

import sys
import collections

if len(sys.argv) < 2:
    print('usage: {} filename'.format(sys.argv[0]))
    sys.exit(1)

filename = sys.argv[1]

with open(filename, 'r') as f:
    words = f.read().split()

counter = collections.Counter(words)

for word in sorted(counter.keys()):
    print('{} {}'.format(word, counter[word]))

代码分析:

  1. 通过sys模块获取命令行参数,即要统计的文件名。
  2. 使用with语句打开文件,使用read()方法读取文件中的内容,并使用split()方法分割成单词列表。
  3. 使用collections模块中的Counter类统计单词列表中每个单词出现的次数。
  4. 遍历排序后的单词列表,输出每个单词及其出现次数。
总结

本题考察了文件操作、计数器的使用、排序等知识点,是一道典型的数据处理题目。熟练掌握这些知识点,对于日常的数据处理任务也会非常有用。