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

更新于:2021年10月11日

2K+ 浏览量

启动您的职业生涯

完成课程获得认证

开始学习
广告