python语言的内置对象中有两个常用的排序函数:sort和sorted。此外,常用的科学计算库numpy也提供了很多排序支持。本节主要讲解内置排序方法sort和sorted的使用场景,后面几页会讲解numpy的使用。1、sort()函数简单使用的特点:sort()函数只能在list列表的对象中使用,list本身的顺序不会直接生成新的list对象,而字符串按照ASCII码排序,中文按照unicode编码从小到大排序。默认不使用可选参数进行排序1if__name__=='__main__':2#定义列表3list_=list([5,2,3,4,6,1])4#执行排序5list_.sort()6#结果7打印list_使用可选参数reverse从大到小排序1if__name__=='__main__':2#definelist3list_=list([5,2,3,4,6,1])4#执行排序5list_.sort(reverse=True)6#结果7打印list_使用可选参数cmp进行排序,cmp函数主要用于比较,通过比较大小1if__name__=='__main__':2#定义列表3list_=[('e',2),('a',1),('c',3),('d',4)]4#执行排序5list_.sort(cmp=lambdam,n:cmp(m[1],n[1]))6#结果7printlist_lambda表达式解释:lambdam,n:cmp(m[1],n[1])表示元素的第一个位置对象在2、1、3、4之间进行比较,并按升序返回一个新的迭代对象。2、sorted()函数参数的神奇之处:sorted(iterable,cmp,key,reverse)函数可以对可迭代序列进行排序,返回一个新的对象,而不需要修改原来的list对象。默认情况下,不使用可选参数进行排序1if__name__=='__main__':2#定义列表3list_=['d','f','a','c','b','e']4#执行排序5list_2=sorted(list_)6#结果7printlist_2使用可选参数key进行排序,并指定可迭代对象中的一个元素进行排序1if__name__=='__main__':2#定义list3list_=[('e',2),('a',1),('c',3),('d',4)]4#执行排序5list_2=sorted(list_,key=lambdan:n[1])6#结果7printlist_2lambda表达式说明:lambdan:n[1],n代表每一个元素,例如:('e',2)是其中一个元素,n[1]代表每一个元素('e',2)中的第一个位置恰好是2,可以看出这个迭代对象是按照2,1,3,4升序排列的。使用可选参数cmp进行排序,cmp函数主要用于比较,通过比较大小进行排序1if__name__=='__main__':2#Definitionlist3list_=[('e',2),('a',1),('c',3),('d',4)]4#执行排序5list_2=sorted(list_,cmp=lambdam,n:cmp(m[0],n[0]))6#结果7printlist_2lambda表达式说明:lambdam,n:cmp(m[0],n[0])表示元素对象的第0个位置在e,a,c,d之间返回一个新的迭代对象比较后升序排列。使用可选参数reverse排序,从大到小1if__name__=='__main__':2#definelist3list_=['d','f','a','c','b','e']4#执行排序5list_2=sorted(list_,reverse=True)6#结果7printlist_2更多精彩前往微信公众号【Python集中营】,专注后端编程实战,原创文章更新中每天!
