激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python list排序的兩種方法及實(shí)例講解

python list排序的兩種方法及實(shí)例講解

2020-09-24 14:32zhbnx Python

本文主要介紹了python list排序的兩種方法及實(shí)例講解。具有很好的參考價值,下面跟著小編一起來看下吧

對List進(jìn)行排序,Python提供了兩個方法

方法1.用List的內(nèi)建函數(shù)list.sort進(jìn)行排序

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

Python實(shí)例:

?
1
2
3
4
5
6
>>> list = [2,5,8,9,3]
>>> list
[2,5,8,9,3]
>>> list.sort()
>>> list
[2, 3, 5, 8, 9]

方法2.用序列類型函數(shù)sorted(list)進(jìn)行排序(從2.4開始)

Python實(shí)例:

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

兩種方法的區(qū)別:

sorted(list)返回一個對象,可以用作表達(dá)式。原來的list不變,生成一個新的排好序的list對象。

list.sort() 不會返回對象,改變原有的list。

其他sort的實(shí)例:

實(shí)例1:正向排序

?
1
2
3
4
>>>L = [2,3,1,4]
>>>L.sort()
>>>L
>>>[1,2,3,4]

實(shí)例2:反向排序

?
1
2
3
4
>>>L = [2,3,1,4]
>>>L.sort(reverse=True)
>>>L
>>>[4,3,2,1]

實(shí)例3:對第二個關(guān)鍵字排序

?
1
2
3
4
>>>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)]

實(shí)例4: 對第二個關(guān)鍵字排序

?
1
2
3
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)]

實(shí)例5: 對第二個關(guān)鍵字排序

?
1
2
3
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)]

實(shí)例6:(DSU方法:Decorate-Sort-Undercorate)

?
1
2
3
4
5
6
>>>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排序的方法,其中實(shí)例3.4.5.6能起到對以List item中的某一項(xiàng)

為比較關(guān)鍵字進(jìn)行排序.

效率比較:

cmp < DSU < key

通過實(shí)驗(yàn)比較,方法3比方法6要慢,方法6比方法4要慢,方法4和方法5基本相當(dāng)

多關(guān)鍵字比較排序:

實(shí)例7:

?
1
2
3
4
>>>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是僅僅按照第二個關(guān)鍵字來排的,

如果我們想用第二個關(guān)鍵字排過序后再用第一個關(guān)鍵字進(jìn)行排序呢?有兩種方法

實(shí)例8:

?
1
2
3
4
>>> 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)]

實(shí)例9:

?
1
2
3
4
>>> 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)]

為什么實(shí)例8能夠工作呢?原因在于tuple是的比較從左到右比較的,比較完第一個,如果相等,比較第二個

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持服務(wù)器之家!

原文鏈接:http://blog.chinaunix.net/uid-20775448-id-4222915.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 看a级毛片| 91精品国啪老师啪 | 精品国产乱码一区二区 | 姑娘第四集免费看视频 | 久久视频精品 | 国产中文一区 | 91精品久久久久久久久 | 一区二区三区四区高清视频 | 成人福利在线播放 | 男女亲热网站 | 久久福利电影网 | 色就色 综合偷拍区91网 | 91黄瓜视频| 国产88久久久国产精品免费二区 | 欧美三级美国一级 | 青久草视频 | 无码专区aaaaaa免费视频 | 色柚视频网站ww色 | 一级黄色性感片 | 欧美日韩视频网站 | 91成人在线免费视频 | 亚洲精品午夜在线 | 久久国产精品免费视频 | 91精品国啪老师啪 | 九九热在线观看视频 | 欧美色性 | 国产免费区 | 羞羞视频免费网站男男 | 亚洲一区免费电影 | 日韩欧美精品电影 | 色七七久久影院 | 蜜桃麻豆视频 | 毛片在线免费播放 | 欧美在线成人影院 | 国产精品美女一区二区 | 亚州视频在线 | 日本高清视频网站www | 国产精品久久久免费观看 | 爽爽视频免费看 | 久久精品视频1 | 国产精品久久99精品毛片三a |