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
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP