国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python常见问题 > 如何实现对Python中列表的排序?

如何实现对Python中列表的排序?

头像

silencement

2019-07-22 10:39:073138浏览 · 0收藏 · 0评论

对List进行排序,Python提供了两个方法

方法1.用List的内建函数list.sort进行排序

list.sort(func=None, key=None, reverse=False) 

Python实例:

>>> list = [2,5,8,9,3]  
>>> list  
[2,5,8,9,3]  
>>> list.sort()  
>>> list  
[2, 3, 5, 8, 9]

方法2.用序列类型函数sorted(list)进行排序(从2.4开始)

Python实例:

>>> list = [2,5,8,9,3]  
>>> list  
[2,5,8,9,3]  
>>> sorted(list)  
[2, 3, 5, 8, 9]

两种方法的区别:

sorted(list)返回一个对象,可以用作表达式。原来的list不变,生成一个新的排好序的list对象。

list.sort() 不会返回对象,改变原有的list。

其他sort的实例:

实例1:正向排序

实例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',6),('a',1),('c',3),('d',4)]
>>>L.sort(lambda x,y:cmp(x[1],y[1])) 
>>>L
>>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]

实例4: 对第二个关键字排序 

>>>L = [('b',6),('a',1),('c',3),('d',4)]
>>>L.sort(key=lambda x:x[1]) 
>>>L
>>>[('a', 1), ('c', 3), ('d', 4), ('b', 6)]

实例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)]

为什么实例8能够工作呢?原因在于tuple是的比较从左到右比较的,比较完第一个,如果

相等,比较第二个。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

韩浸免费漫画在线观看阅读| 美女胸部视频| 为啥女的舒服了要摸自己的胸 | 男生的困困赛女生的困困里| 成人做爱免费A片视频| 老牛耕田陈雪435章| 9.1国产NBA免费| 芬太尼在美国是怎么样的存在| 扌吴辶鬲的背景故事| 《美国伦理4女警》| 韩漫免费浸画在线阅读| 一家乱战1-13集小说免费阅读| 老公边日边叫我小骚B| 混乱的都市| 蜜汁樱桃》免费阅读全文小说 | 成品网站1688在线应用评价| 国产偷窥熟妇高潮呻吟视频AV| 成品人和精品人的区别9点| 芒果浏览器| 免费B站在线观看人数在哪儿找到| 女儿与爸爸高清免费版电视剧| 灭火宝贝| SNH48欧洲码和亚洲码图片| 天美传奇星空MV高清免费 | 公之浮之中字5HD| 成品免费PPT网站入口| 小丹让我尝尝你的味道是什么歌啊| 林喜宝爸爸叫李叔叔到家是哪一集 | 音响怎么选| 皇空无限MV国产剧入选精彩| 胬肉(产乳)BY金银花露| 在线观看日本韩国电影电视剧| 初二学生小馒头| 公交车上双乳被老汉揉搓玩下载| 洞洞饿了1-36集全免费| 妙手房术3真人版| 老翁玩嫩媳| 国产在线观看免费全集电视剧网站 | 黑色黄丝包臀紧身连衣裙| 少女たちよ观看免费高清电视剧 | 韩剧在办公室做饭的电影