欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2017年03月20日 14:59:25   作者:zhbnx  
本文主要介紹了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í)例:

>>> 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í)例:

>>> 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:正向排序

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

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

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

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

>>>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)鍵字排序

>>>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)鍵字排序

>>>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)

>>>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:

>>>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:

>>> 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:

>>> 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í)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • python Protobuf定義消息類型知識點(diǎn)講解

    python Protobuf定義消息類型知識點(diǎn)講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python Protobuf定義消息類型知識點(diǎn)講解,有興趣的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • 淺談pytorch卷積核大小的設(shè)置對全連接神經(jīng)元的影響

    淺談pytorch卷積核大小的設(shè)置對全連接神經(jīng)元的影響

    今天小編就為大家分享一篇淺談pytorch卷積核大小的設(shè)置對全連接神經(jīng)元的影響,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python請求域名requests.(url = 地址)報(bào)錯

    python請求域名requests.(url = 地址)報(bào)錯

    本文主要介紹了python請求域名requests.(url = 地址)報(bào)錯,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python適合做數(shù)據(jù)挖掘嗎

    python適合做數(shù)據(jù)挖掘嗎

    在本篇文章里小編給各位分享的是一篇關(guān)于python做數(shù)據(jù)挖掘的相關(guān)知識點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • Python類中__init__()?和self的詳細(xì)解析

    Python類中__init__()?和self的詳細(xì)解析

    self和__init__的語法學(xué)過Python的都清楚,但是靠死記硬背來迫使自己理解并不是個好辦法,下面這篇文章主要給大家介紹了關(guān)于Python類中__init__()?和self的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • python實(shí)現(xiàn)倒計(jì)時的示例

    python實(shí)現(xiàn)倒計(jì)時的示例

    這篇文章主要介紹了python實(shí)現(xiàn)的倒計(jì)時的示例,需要的朋友可以參考下
    2014-02-02
  • 安裝python3.7編譯器后如何正確安裝opnecv的方法詳解

    安裝python3.7編譯器后如何正確安裝opnecv的方法詳解

    這篇文章主要介紹了安裝python3.7編譯器后如何正確安裝opnecv,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 在Python中利用Into包整潔地進(jìn)行數(shù)據(jù)遷移的教程

    在Python中利用Into包整潔地進(jìn)行數(shù)據(jù)遷移的教程

    這篇文章主要介紹了在Python中如何利用Into包整潔地進(jìn)行數(shù)據(jù)遷移,在數(shù)據(jù)格式的任意兩個格式之間高效地遷移數(shù)據(jù),需要的朋友可以參考下
    2015-03-03
  • python break和continue用法對比

    python break和continue用法對比

    在本篇文章里小編給大家整理的是一篇關(guān)于python break和continue用法對比內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。
    2021-06-06
  • Python numpy.interp的實(shí)例詳解

    Python numpy.interp的實(shí)例詳解

    本文主要介紹了Python numpy.interp的實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評論