【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)