练习
假设我们用一组tuple表示学生名字和成绩:
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
请用sorted()对上述列表分别按名字排序:
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_name(t):
return sorted(t[0])
L2 = sorted(L, key=by_name)
print(L2)
运行结果:
[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
解释:
函数by_name(t)的含义是什么呢?
传入的参数t=L[i](i=0,1,2,…),即对L的每个元素(一个元组)的第一个元素进行排序
所以key=[‘Adam’,‘Bart’, ‘Bob’, ‘Lisa’]
L2 = sorted(L, key=by_name)指的是将列表L按照by_name()函数的结果来排序
也就是将key的结果与列表L一一对应,得到答案
[(‘Adam’, 92), (‘Bart’, 66), (‘Bob’, 75), (‘Lisa’, 88)]