【Python实践-10】用sorted()对列表排序

 1 #按名字排序
 2 l2= [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
 3 def by_name(t):
 4     return t[0]
 5 l2=sorted(l2,key=by_name)
 6 print(l2)
 7 #再按成绩从高到低排序
 8 def by_score(t):
 9     return 100-t[1]
10 l2=sorted(l2,key=by_score)
11 print(l2)

题目:用一组tuple表示学生名字和成绩,用sorted()对上述列表分别按名字和成绩高低排序。

知识点:

1、Python内置的sorted()函数可以对list进行排序,sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序,这里我之前不理解的一点,key函数作用于每一个元素上,根据返回的结果来排序,但排序的对象仍然是原list,key函数相当于对每一个元素作了一次自定义的背景调查。

2、默认情况下,对字符串排序,是按照ASCII的大小比较的,由于'Z' < 'a',大写字母Z会排在小写字母a的前面。

3、要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True,默认是升序(reverse=False),降序排列用(reverse=True)

posted @ 2019-05-07 15:39  临江仙宇  阅读(2643)  评论(0编辑  收藏  举报