面试题答案
一键面试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
的字母顺序从小到大排列。