2020-10-07 20:44:09作者:系统之家
对于Python内置函数sorted(),先拿来跟list(列表)中的成员函数list.sort()进行下对比。在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的。 主要的区别在于,list.sort()是对已经存在的列表进行操作,进而可以改变进行操作的列表。而内建函数sorted返回的是一个新的list,而不是在原来的基础上进行的操作.
2.再来,让我们用Python自带的帮助函数help()看看对于sorted()是怎么定义的:
要先说明的是, 本人用的Python版本为3.5, 所以会跟Python2的有变差。
由帮助可以看到,传进去一个可迭代的数据,返回一个新的列表,注意,是新的列表!来看看看实例吧:
由以上可以看到,只要是可迭代对象数据,都能够进行排序,生成一个排序后的列表。
如果想要排逆序呢?很简单,只要将可选参数reverse设置为True即可:
高级用法
有时候,我们要处理的数据内的元素不是一维的,而是二维的甚至是多维的,那要怎么进行排序呢?这时候,sorted()函数内的key参数就派上用场了!从帮助信息上可以了解到,key参数可传入一个自定义函数。那么,该如何使用呢?让我们看看如下代码:
这里,列表里面的每一个元素都为二维元组,key参数传入了一个lambda函数表达式,其x就代表列表里的每一个元素,然后分别利用索引返回元素内的第一个和第二个元素,这就代表了sorted()函数利用哪一个元素进行排列。而reverse参数就如同上面讲的一样,起到逆排的作用。默认情况下,reverse参数为False。
当然,正如一开始讲到的那样,如果想要对列表直接进行排序操作,可以用成员方法sort()来做:
对于三维及以上的数据排排序,上述方法同样适用。
应用:
打印出排序后的desk:
DOTA2职业选手爆料:亚运会选手被举报,或将面临终身禁赛的惩罚
MLXG再次卷入RNG合同风波,RNG狮子大张口,索赔七千万
TES不敌WE二连败,JKL回应:被JDG碾压之后全队都没有找回状态
WE战胜TES引发外网热议:BP的差距太大了,为什么亚运会JKL入选AD
中国英雄联盟项目亚运会名单公布:EDG三人入选,jiejie和meiko入选遭海外质疑
亚运会AD人选难以抉择,众多电竞选手力挺JKL入选亚运会AD
JDG再一次战胜BLG,两队双C之间的差距太大,全方面碾压!
TES夏季赛豪取七连胜,双C全场精彩发挥,S8的JKL回来了!
小黄人首次登上LPL夏季赛,BLG对战TT,JDG有望冲击夏季赛冠军