所属作业: hw8
数据结构: 字典, 字符串
算法: 排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| # 创建一个字典来存储院系编号及其对应的成绩列表
scores_by_academic = {}
while True:
# 读取输入
s = input()
# 如果输入是 "quit" 或 "QUIT",则结束循环
if s.lower() == "quit":
break
# 将输入的字符串按逗号分割成学号和成绩
id, score = s.split(",")
# 提取学号中的院系编号(第6和第7位)
academic = id[5:7]
# 如果院系编号不在字典中,则初始化一个空列表
if academic not in scores_by_academic:
scores_by_academic[academic] = []
# 将成绩转换为浮点数并添加到对应院系的成绩列表中
scores_by_academic[academic].append(float(score))
# 创建一个列表来存储每个院系的平均成绩
average_scores = []
# 遍历字典中的每个院系
for academic, scores in scores_by_academic.items():
# 计算平均成绩,并使用 round() 函数保留一位小数
average_score = round(sum(scores) / len(scores), 1)
average_scores.append((academic, average_score))
# 按照平均成绩降序排序
average_scores.sort(key=lambda x: -x[1])
# 遍历排序后的平均成绩列表并输出结果
for academic, score in average_scores:
print(f"{academic},{score}")
|