Python程序:从嵌套列表中显示所有第二低分的学生姓名
假设我们有一个嵌套列表,其中包含每个学生的名字和分数,我们需要显示所有第二低分学生的姓名。如果有多个学生的分数都是第二低分,则按字母顺序排列这些姓名,并在每一行打印一个姓名。
例如,如果输入是 students = [['Amal',37],['Bimal',37],['Tarun',36],['Akash',41],['Himadri',39]],则输出将是 Amal, Bimal,因为他们俩的得分都是第二低的37分,并且按字母顺序排列。
为了解决这个问题,我们将遵循以下步骤:
- min_mark := 所有学生分数中的最小值
- students := 所有分数大于min_mark的学生列表
- min2_mark := 所有学生分数中的第二小值
- students := 对列表进行排序,该列表包含所有分数等于min2_mark的学生姓名
- 对students列表中的每个学生x进行:
- 显示x
示例
让我们来看下面的实现,以便更好地理解。
def solve(students): min_mark = min(x[1] for x in students) students = [x for x in students if x[1] > min_mark] min2_mark = min(x[1] for x in students) students = sorted([x[0] for x in students if x[1] == min2_mark]) for x in students: print(x) students = [['Amal',37],['Bimal',37],['Tarun',36],['Akash',41],['Himadri',39]] solve(students)
输入
[['Amal',37],['Bimal',37],['Tarun',36],['Akash',41],['Himadri',39]]
输出
Amal Bimal
广告