def get_grades(grades: List[list]) -> int:
"""Return the name of the student that has the highest grade.
If there is a tie for the highest grade, it should return the name that appears
first in grades."""
我的数据集是列表,例如
GRADES = [['Todd', 'Biology', 67, 5], ['Ben', 'Chemistry', '88', 7]]
此处,等级位于每个子列表的索引2处。
我该怎么做?
答案 0 :(得分:3)
你可以试试这个
lst=[['susan', 'adams' , 67, 004], ['garret', 'jimmy', 88, 9]]
max(lst, key=lambda i: i[2])[0]
输出
>>> lst=[['susan', 'adams' , 67, 004], ['garret', 'jimmy', 50, 9]]
>>> max(lst, key=lambda i: i[2])[0]
'susan'
内置函数max
可以使用键函数参数来帮助它做出决定。它的工作方式与Sorting How To中描述的排序键功能相同。
答案 1 :(得分:0)
这将返回所有获得最高成绩的名字的列表:
info = [['susan', 'adams' , 67, 4], ['garret', 'jimmy', 88, 9], ['stack', 'overflow', 88, 11]]
max_grade = max(person[2] for person in info)
max_persons = [person[0] for person in info if person[2] == max_grade]
如果info
不是空列表,max_persons[0]
将始终包含其中一个获得最高成绩的人的姓名