成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

淺談 python 中的 sorted()與sort()

lansheng228 / 548人閱讀

摘要:返回值是一個經(jīng)過排序的可迭代類型,與一樣。注一般來說,和可以使用表達式。與的不同在于,是在原位重新排列列表,而是產(chǎn)生一個新的列表。

我們需要對List進行排序,Python提供了兩個方法
對給定的List L進行排序,
方法1.用List的成員函數(shù)sort進行排序
方法2.用built-in函數(shù)sorted進行排序(從2.4開始)

--------------------------------sorted---------------------------------------
>>> help(sorted)
Help on built-in function sorted in module __builtin__:

sorted(...)
    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
---------------------------------sort----------------------------------------
>>> help(list.sort)
Help on method_descriptor:

sort(...)
    L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
    cmp(x, y) -> -1, 0, 1
-----------------------------------------------------------------------------
  

iterable:是可迭代類型;
cmp:用于比較的函數(shù),比較什么由key決定,有默認值,迭代集合中的一項;
key:用列表元素的某個屬性和函數(shù)進行作為關(guān)鍵字,有默認值,迭代集合中的一項;
reverse:排序規(guī)則. reverse = True 或者 reverse = False,有默認值。
返回值:是一個經(jīng)過排序的可迭代類型,與iterable一樣。

注;一般來說,cmp和key可以使用lambda表達式。

sort()與sorted()的不同在于,sort是在原位重新排列列表,而sorted()是產(chǎn)生一個新的列表。

Sorting basic:

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

Sorting cmp:

>>>L = [("b",2),("a",1),("c",3),("d",4)]
>>>print sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))
[("a", 1), ("b", 2), ("c", 3), ("d", 4)]

Sorting keys:

>>>L = [("b",2),("a",1),("c",3),("d",4)]
>>>print sorted(L, key=lambda x:(x[1]))
[("a", 1), ("b", 2), ("c", 3), ("d", 4)]

Sorting reverse:

>>> print sorted([5, 2, 3, 1, 4], reverse=True)
[5, 4, 3, 2, 1]
>>> print sorted([5, 2, 3, 1, 4], reverse=False)
[1, 2, 3, 4, 5]

注:效率key>cmp(key比cmp快)

在Sorting Keys中:我們看到,此時排序過的L是僅僅按照第二個關(guān)鍵字來排的,如果我們想用第二個關(guān)鍵字
排過序后再用第一個關(guān)鍵字進行排序呢?

>>> L = [("d",2),("a",4),("b",3),("c",2)]
>>> print sorted(L, key=lambda x:(x[1],x[0]))
>>>[("c", 2), ("d", 2), ("b", 3), ("a", 4)]

以上環(huán)境python2.4

Via

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/37415.html

相關(guān)文章

  • sort 中 key 的用法淺談 python

    摘要:但是實際寫程序中,我們經(jīng)常會寫出許多繁雜的丑陋的代碼。特別推薦,許多代碼讓我獲益匪淺,比如這里對的使用。用可以寫出很簡單直觀的代碼,如下當(dāng)然,上面不考慮效率,這里有一個利用分治法思想的高效的方法。更多文章更多閱讀中參數(shù)的用法高級編程技巧 用 Python 時間也算不短了,但總感覺自己在用寫 C++ 代碼的思維寫 Python,沒有真正用到其作為腳本語言的優(yōu)勢。之前刷 LeetCode ...

    keke 評論0 收藏0
  • Python 進階之路 (一) List 進階方法匯總,新年快樂!

    摘要:嘗射于家圃,有賣油翁釋擔(dān)而立,睨之,久而不去??得C問曰汝亦知射乎吾射不亦精乎翁曰無他,但手熟爾??得C忿然曰爾安敢輕吾射翁曰以我酌油知之。 開啟變身模式 大家好, 從這一期開始,我們會從小白變身為中等小白,在基礎(chǔ)起步階段有太多的東西我沒有講到,但是俗話說的好,無他,但手熟爾,只要多多練習(xí),時間會是最好的證明,相信我們終有一天會成為高手,因此從這一系列開始,讓我們一起更上一層樓,還是和往常...

    garfileo 評論0 收藏0
  • Python dict sort排序 按照key,value

    摘要:我們知道的內(nèi)置數(shù)據(jù)類型是無序的,通過來獲取對應(yīng)的。可是有時我們需要對中的進行排序輸出,可能根據(jù),也可能根據(jù)來排。最簡單的方法,這個是按照值排序又一個按照值排序,貌似比上一個速度要快點還是按值排序,據(jù)說更快。。。 我們知道Python的內(nèi)置dictionary數(shù)據(jù)類型是無序的,通過key來獲取對應(yīng)的value。可是有時我們需要對dictionary中 的item進行排序輸出,可能根據(jù)ke...

    betacat 評論0 收藏0
  • Google Python Class --- Sorting

    摘要:它直接作用于列表,并且沒有返回值。排序時,列表中的元素會通過函數(shù)進行處理,并按照返回值進行排序。會按照元素的長度進行升序排列按照元素的小寫進行排序后面可以是自定義函數(shù)表達式按照返回值排序元組元組是固定尺寸的元素的集合。 showImg(https://segmentfault.com/img/bVB1Wh); 剛才看到一位朋友談到如何寫出高逼格的文章,想了想確實有道理。所以特意弄一張高...

    madthumb 評論0 收藏0

發(fā)表評論

0條評論

lansheng228

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<