欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-02 16:28:33
题目:用一组tuple表示学生名字和成绩,用sorted()对上述列表分别按名字和成绩高低排序。 知识点: 1、Python内置的sorted()函数可以对list进行排序,sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,key指定的函数将作用于list的每一个元 ......
 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)