Python程序:显示嵌套列表中所有第二低成绩的学生姓名
假设我们有每个学生的姓名和成绩嵌套列表,我们必须显示任何具有第二低成绩的学生的姓名。如果有多个学生具有第二低的成绩,则按字母顺序重新排序并将每个名称打印在新行上。
因此,如果输入为students = [[‘Amal’, 37],[‘Bimal’, 37],[‘Tarun’, 36],[‘Akash’, 41],[‘Himadri’,39], 那么输出将是Amal、Bimal都有第二低的得分37,它们按字母顺序排序。
为了解决这个问题,我们将遵循以下步骤−
- min_mark:对于所有x在students中的分数的最小值
- students:为所有分数>min_mark的学生x的学生列表
- min2_mark:对于所有x在students中的分数的最小值
- students:按字母顺序排序列表[与x的分数相同的名称的x的所有x]
- 对于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