MST

星途 面试题库

面试题:Python中sorted函数结合复杂对象的临时排序

定义一个列表,其中的元素是字典,每个字典包含'name'(字符串类型)和'age'(整数类型)两个键值对,例如[{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 30}]。使用sorted函数,根据'age'对这个列表进行临时排序,从大到小,并且当'age'相同时,按'name'的字母顺序从小到大排列。请写出代码实现,并简要说明如何使用sorted函数的key参数来完成这种复杂排序。
22.3万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
students = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 30}, {'name': 'David', 'age': 25}]

sorted_students = sorted(students, key=lambda student: (-student['age'], student['name']))

print(sorted_students)

sorted函数中,key参数接受一个函数,这个函数会作用于每个元素上。在这里,使用了lambda表达式定义这个函数。lambda student: (-student['age'], student['name']) 表示对于列表中的每个字典(即student),先按age的相反数排序(从而实现从大到小排序,因为默认排序是从小到大),当age相同时,再按name的字母顺序从小到大排列。