Python 去重保留最高成绩:高效处理学生作业记录
input_data = eval(input())
# 创建一个空字典用于存储每个学生的最高成绩
scores = {}
# 遍历作业记录
for item in input_data:
student_id, score = item
# 如果学生已经存在于字典中,则比较当前成绩与已有成绩的大小,保留最高成绩
if student_id in scores:
scores[student_id] = max(scores[student_id], score)
else:
scores[student_id] = score
# 将字典转换为列表输出
output = [(key, value) for key, value in scores.items()]
print(output)
输入:
[(180001,88),(180002,65),(180003,95),(180001,70),(180001,90)]
输出:
[(180001, 90), (180002, 65), (180003, 95)]
代码解析:
- 输入数据: 使用
eval(input())将输入的字符串转换为列表。 - 字典存储: 创建一个空字典
scores,用来存储每个学生的最高成绩。 - 遍历记录: 循环遍历输入的作业记录列表。
- 更新成绩: 对于每个记录,判断学生是否已经在
scores字典中:- 如果已存在,则比较当前成绩和已有成绩,保留最高成绩。
- 如果不存在,则将学生和成绩添加到字典中。
- 输出结果: 将
scores字典转换为列表,并输出。
总结:
这段代码通过字典数据结构高效地实现了去重保留最高成绩的功能,为处理学生作业记录提供了便捷的解决方案。
原文地址: https://www.cveoy.top/t/topic/0pw 著作权归作者所有。请勿转载和采集!