使用Python从给定学生姓名与分数列表中查找第三高分数及对应学生姓名
解决方法:找出第三大分数及对应学生
嘿,我来帮你搞定这个问题!咱们一步步拆解需求,用Python实现对应的操作~
1. 找出第三大的分数
这里要注意重复分数只算同一个等级(比如例子里的三个80,不能当成三个不同的高分),所以正确的步骤是:
- 先把分数列表转成集合去重,消除重复值的干扰
- 将去重后的分数按从大到小排序
- 取排序后的第3个元素(Python索引从0开始,所以对应索引
2)
代码示例:
names = ["Andi", "Budi", "Charlie", "Dilan", "Echa"] scores = [80, 80, 80, 100, 90] # 去重并按降序排序 unique_sorted_scores = sorted(set(scores), reverse=True) # 获取第三大的分数 third_highest_score = unique_sorted_scores[2] print(f"第三大的分数是:{third_highest_score}")
如果担心极端情况(比如所有分数都相同,去重后不足3个),可以加个容错判断:
if len(unique_sorted_scores) >= 3: third_highest_score = unique_sorted_scores[2] else: print("分数种类不足3个,无法找到第三大分数")
2. 找出拥有第三高分数的学生
拿到目标分数后,只需要同时遍历姓名和分数列表,把分数匹配的学生名字收集起来即可:
代码示例:
# 收集对应学生姓名 students_with_third_highest = [name for name, score in zip(names, scores) if score == third_highest_score] print(f"拥有第三高分数的学生是:{students_with_third_highest}")
把两段代码整合后运行,会输出:
第三大的分数是:80 拥有第三高分数的学生是:['Andi', 'Budi', 'Charlie']
内容的提问来源于stack exchange,提问作者Hana Mufida Nur Azizah
相关产品推荐
相关产品推荐

