日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

如何在python中对列表套列表进行排序_如何实现对Python中列表的排序?

發布時間:2025/3/19 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在python中对列表套列表进行排序_如何实现对Python中列表的排序? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對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?

通過實驗比較,方法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是的比較從左到右比較的,比較完第一個,如果

相等,比較第二個。

總結

以上是生活随笔為你收集整理的如何在python中对列表套列表进行排序_如何实现对Python中列表的排序?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。