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

2019-05-08 07:31:57来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

 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)


原文链接:https://www.cnblogs.com/jianglin1996/p/10825832.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python入门学习

下一篇:OpenCV+Python实现视频文件裁剪功能