给定一个长度为n的成绩表(成绩表中包含学生的姓名、成绩),以及一个整数k,请设计一个算法求出成绩表从小到大排序后的第k个学生的姓名、成绩(成绩保留到小数点后1位),并列则全部输出。
输入描述:
第一行两个正整数,n和k 然后后n行,每行两个整数,分别代表每个学生的姓名和成绩
输出描述:
所有排名倒数第k的学生信息,多个学生时按其输入时的顺序输出,中间以,分隔。
输入样例:
5 3
小红 87.2
小白 92
小橙 99.3
小绿 87
小蓝 89
输出样例: 小蓝
import sys
input_data = sys.stdin.read().strip().split('\n')
n, k = map(int, input_data[0].split())
students = []
for i in range(1, n+1):
name, score = input_data[i].split()
students.append((name, round(float(score), 1)))
students_sorted = sorted(students, key=lambda x: x[1])
kth_score = students_sorted[k-1][1]
result = [name for name, score in students_sorted if score == kth_score]
print(",".join(result))
标签:成绩表,score,students,查找,input,sorted,排名第,name
From: https://blog.csdn.net/m0_62222486/article/details/139378979