如何从字典列表中返回最高分?

时间:2021-03-12 17:45:55

标签: python python-3.x

我必须创建一个函数,通过参数接收 4 个学生(字典)并返回平均数最高的学生。

def create_student(nom: str, cod: str, gen: str, carr: str, media: float, ssc: float) -> dict:
    dic_student = {"name": nom,
                   "code": cod,
                   "sex": gen,
                   "career": carr,
                   "media": media,
                   "ssc": ssc}
    return dic_student

# Main program
student1 = create_student("Juan Pérez", "201824736", "male", "Biology", 3.78, 0.7)
student2 = create_student("Ana Gavalda", "201724736", "female", "political science", 4.25, 3.5)
student3 = create_student("Bastien Bosa", "201815217", "male", "Economy", 3.21, 2.3)
student4 = create_student("Catalina Gómez", "201715400", "female", "Art", 3.8, 4)

print("The students are:\n", "student 1:\n", student1,
  "\nstudent 2:\n", student2,
  "\nstudent 3:\n", student3,
  "\nstudent4:\n", student4)

1 个答案:

答案 0 :(得分:0)

为清楚起见,我省略了参数检查之类的内容,但基本思想是:按 media 对学生进行排序,然后返回具有最高值的学生。

示例:

def find_top_student(*students):
    sorted_students = sorted(students, key=lambda s: s["media"], reverse=True)
    return sorted_students[0]

top_student = find_top_student(student1, student2, student3, student4)

print(top_student["name"])

输出:

Ana Gavalda
相关问题