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)]

代码解析:

  1. 输入数据: 使用 eval(input()) 将输入的字符串转换为列表。
  2. 字典存储: 创建一个空字典 scores ,用来存储每个学生的最高成绩。
  3. 遍历记录: 循环遍历输入的作业记录列表。
  4. 更新成绩: 对于每个记录,判断学生是否已经在 scores 字典中:
    • 如果已存在,则比较当前成绩和已有成绩,保留最高成绩。
    • 如果不存在,则将学生和成绩添加到字典中。
  5. 输出结果:scores 字典转换为列表,并输出。

总结:

这段代码通过字典数据结构高效地实现了去重保留最高成绩的功能,为处理学生作业记录提供了便捷的解决方案。

Python 去重保留最高成绩:高效处理学生作业记录

原文地址: https://www.cveoy.top/t/topic/0pw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录