📅  最后修改于: 2023-12-03 15:42:19.546000             🧑  作者: Mango
本题是GATE-IT-2004考试中的计算机科学领域的一道题目,要求编写一个程序。
一份文件包含用分号分隔的条目。每个条目由两个字段组成:名称和值。将其读入并将其转换为一个由名称和值组成的一个键值对。然后对于输入文件中的每个条目,如果该名称出现超过一次,则打印出该名称和该名称的出现次数,否则不打印。
注意:输入文件是按顺序排列的,并且名称不一定是唯一的。
输入格式如下:
name1;value1
name2;value2
...
namen;valuen
其中,名称和值都是字符串,长度不超过100。
输出格式为:
name1: n
name2: m
...
其中,名称后面跟着该名称在输入文件中出现的次数,n、m为该名称出现的次数。
假设输入文件如下:
name1;value1
name2;value2
name1;value3
name3;value4
name2;value5
则输出结果应该为:
name1: 2
name2: 2
思路比较简单,可以采用哈希表来实现。具体步骤如下:
下面是对应的 Python 代码:
def count_items(file_path):
name_count = {}
with open(file_path) as f:
for line in f:
name, value = line.split(';')
name_count[name] = name_count.get(name, 0) + 1
for name, count in name_count.items():
if count > 1:
print(f"{name}: {count}")
本题主要考察了哈希表的应用和简单的文件读写操作。在实现上需要注意,要使用字典来存储名称和出现次数的对应关系,而且要特别注意输入文件的格式(名称和值之间的分隔符等)。