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+ 瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.