sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,用sorted()排序的关键在于实现一个映射函数
映射函数作用于list的每一个元素上,并根据key函数返回的结果进行排序。
L = [(‘Bob’, 75), (‘Adam’, 92), (‘Bart’, 66), (‘Lisa’, 88)]
分别按学生姓名和分数排序
如果按学生分数排序,首先构造映射函数
def by_score(t):
return t[1]
返回每个元素的第二个元素,即
75 92 66 88,对这四个数排序
print(sorted(L,key = by_score))
[(‘Bart’, 66), (‘Bob’, 75), (‘Lisa’, 88), (‘Adam’, 92)]
如果按学生姓名排序,首先构造映射函数
def by_name(t):
return t[0]
返回每个元素的第一个元素,即
‘Bob’,‘Adam’,‘Bart’,‘Lisa’,对这四个字符串进行排序
print(sorted(L,key = by_name))
[(‘Adam’, 92), (‘Bart’, 66), (‘Bob’, 75), (‘Lisa’, 88)]