python 怎么让列表里的数从大到小排列,python中如何给列表排序

python 怎么让列表里的数从大到小排列,python中如何给列表排序这篇文章主要介绍了Python中对列表排序实例,需要的朋友可以参考下很多时候,我们需要对List进行排序,Python提供了两个方法,对给定的ListL进行排序:方法1.用List的成员函数sort进行排序方法2.用built-in函数sorted进行排序(从2.4开始)这两种方法使用起来差不多,以第一种为例进行讲解:从Python2.4开始,sort方法有了三个可选的参数,PythonLib…

大家好,欢迎来到IT知识分享网。

109c8e18ab497d90b6d426c09c6c1238.png

这篇文章主要介绍了Python中对列表排序实例,需要的朋友可以参考下

很多时候,我们需要对List进行排序,Python提供了两个方法,对给定的List L进行排序:

方法1.用List的成员函数sort进行排序

方法2.用built-in函数sorted进行排序(从2.4开始)

这两种方法使用起来差不多,以第一种为例进行讲解:

从Python2.4开始,sort方法有了三个可选的参数,Python Library Reference里是这样描述的

实例1:>>>L = [2,3,1,4]

>>>L.sort()

>>>L

>>>[1,2,3,4]

实例2:>>>L = [2,3,1,4]

>>>L.sort(reverse=True)

>>>L

>>>[4,3,2,1]

实例3:>>>L = [(‘b’,2),(‘a’,1),(‘c’,3),(‘d’,4)]

>>>L.sort(cmp=lambda x,y:cmp(x[1],y[1]))

>>>L

>>>[(‘a’, 1), (‘b’, 2), (‘c’, 3), (‘d’, 4)]

实例4:>>>L = [(‘b’,2),(‘a’,1),(‘c’,3),(‘d’,4)]

>>>L.sort(key=lambda x:x[1])

>>>L

>>>[(‘a’, 1), (‘b’, 2), (‘c’, 3), (‘d’, 4)]

实例5:>>>L = [(‘b’,2),(‘a’,1),(‘c’,3),(‘d’,4)]

>>>import operator

>>>L.sort(key=operator.itemgetter(1))

>>>L

>>>[(‘a’, 1), (‘b’, 2), (‘c’, 3), (‘d’, 4)]

实例6:(DSU方法:Decorate-Sort-Undercorate)>>>L = [(‘b’,2),(‘a’,1),(‘c’,3),(‘d’,4)]

>>>A = [(x[1],i,x) for i,x in enumerate(L)] #i can confirm the stable sort

>>>A.sort()

>>>L = [s[2] for s in A]

>>>L

>>>[(‘a’, 1), (‘b’, 2), (‘c’, 3), (‘d’, 4)]

以上给出了6中对List排序的方法,其中实例3.4.5.6能起到对以List item中的某一项

为比较关键字进行排序.

效率比较:

cmp < DSU < key

通过实验比较,方法3比方法6要慢,方法6比方法4要慢,方法4和方法5基本相当

多关键字比较排序:

实例7:>>>L = [(‘d’,2),(‘a’,4),(‘b’,3),(‘c’,2)]

>>> L.sort(key=lambda x:x[1])

>>> L

>>>[(‘d’, 2), (‘c’, 2), (‘b’, 3), (‘a’, 4)]

我们看到,此时排序过的L是仅仅按照第二个关键字来排的,如果我们想用第二个关键字

排过序后再用第一个关键字进行排序呢?有两种方法

实例8:>>> L = [(‘d’,2),(‘a’,4),(‘b’,3),(‘c’,2)]

>>> L.sort(key=lambda x:(x[1],x[0]))

>>> L

>>>[(‘c’, 2), (‘d’, 2), (‘b’, 3), (‘a’, 4)]

实例9:>>> L = [(‘d’,2),(‘a’,4),(‘b’,3),(‘c’,2)]

>>> L.sort(key=operator.itemgetter(1,0))

>>> L

>>>[(‘c’, 2), (‘d’, 2), (‘b’, 3), (‘a’, 4)]

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23843.html

(0)
上一篇 2023-09-04 12:33
下一篇 2023-09-04 20:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信