在省略号处填写一行或多行代码,完成如下功能。同时,在考生文件夹下有个文件 data . txt ,其中记录了2019年 QS 全球大学排校信息,示例如下: 1,麻省理工学院,美国 2,斯坦福大学,美国 3,哈佛大学,美国 第1列为排名,第2列为学校名称,第3列为学校所属的国家,字段之间用’,’隔开。程序读取 data . txt 文件内容,统计出现的国家个数以及每个国家上榜大学的数量及名称 输出结果格式示例如下: 英国:5:牛津大学 剑桥大学 帝国理工学院 伦敦大学学院 爱丁堡大学 瑞士:1:苏黎世联邦理工学院 f = open (' data . txt ',' r ') for line in f : …… for d in unis : print ({:>4):(:>4):()'. format (——)
时间: 2024-03-09 11:49:03 浏览: 44
可以使用字典(dict)来统计每个国家上榜大学的数量及名称。具体代码如下:
```
country_dict = {}
with open('data.txt', 'r') as f:
for line in f:
line = line.strip() # 去掉行末的换行符
rank, name, country = line.split(',') # 拆分排名、学校名称和国家
if country in country_dict:
country_dict[country]['count'] += 1
country_dict[country]['unis'].append(name)
else:
country_dict[country] = {'count': 1, 'unis': [name]}
# 输出结果
for country, info in country_dict.items():
print('{}: {}: {}'.format(country, info['count'], ' '.join(info['unis'])))
```
解释一下代码:
首先,我们创建一个空的字典 `country_dict`,用于统计每个国家上榜大学的数量及名称。
然后,我们打开文件 `data.txt`,逐行读取文件内容。对于每一行,我们先使用 `strip()` 方法去掉行末的换行符,然后使用 `split(',')` 方法将排名、学校名称和国家拆分出来。
接着,我们判断当前国家是否已经在字典中出现过。如果已经出现过,就将该国家的大学数量加 1,并将当前学校名称加入该国家的大学名称列表中。如果没有出现过,就创建一个新的字典项,将该国家的大学数量设为 1,并将当前学校名称作为该国家的第一个大学名称。
最后,我们遍历字典 `country_dict`,输出每个国家的名称、上榜大学数量和上榜大学名称列表。其中,`info['unis']` 是一个列表,我们使用 `' '.join(info['unis'])` 将其中的学校名称用空格连接起来,形成一个字符串。