摘要:返回值是一個經過排序的可迭代類型,與一樣。注一般來說,和可以使用表達式。與的不同在于,是在原位重新排列列表,而是產生一個新的列表。
我們需要對List進行排序,Python提供了兩個方法
對給定的List L進行排序,
方法1.用List的成員函數sort進行排序
方法2.用built-in函數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:用于比較的函數,比較什么由key決定,有默認值,迭代集合中的一項;
key:用列表元素的某個屬性和函數進行作為關鍵字,有默認值,迭代集合中的一項;
reverse:排序規則. reverse = True 或者 reverse = False,有默認值。
返回值:是一個經過排序的可迭代類型,與iterable一樣。
注;一般來說,cmp和key可以使用lambda表達式。
sort()與sorted()的不同在于,sort是在原位重新排列列表,而sorted()是產生一個新的列表。
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是僅僅按照第二個關鍵字來排的,如果我們想用第二個關鍵字
排過序后再用第一個關鍵字進行排序呢?
>>> 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)]
以上環境python2.4
Via
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37415.html
摘要:但是實際寫程序中,我們經常會寫出許多繁雜的丑陋的代碼。特別推薦,許多代碼讓我獲益匪淺,比如這里對的使用。用可以寫出很簡單直觀的代碼,如下當然,上面不考慮效率,這里有一個利用分治法思想的高效的方法。更多文章更多閱讀中參數的用法高級編程技巧 用 Python 時間也算不短了,但總感覺自己在用寫 C++ 代碼的思維寫 Python,沒有真正用到其作為腳本語言的優勢。之前刷 LeetCode ...
摘要:嘗射于家圃,有賣油翁釋擔而立,睨之,久而不去。康肅問曰汝亦知射乎吾射不亦精乎翁曰無他,但手熟爾。康肅忿然曰爾安敢輕吾射翁曰以我酌油知之。 開啟變身模式 大家好, 從這一期開始,我們會從小白變身為中等小白,在基礎起步階段有太多的東西我沒有講到,但是俗話說的好,無他,但手熟爾,只要多多練習,時間會是最好的證明,相信我們終有一天會成為高手,因此從這一系列開始,讓我們一起更上一層樓,還是和往常...
摘要:我們知道的內置數據類型是無序的,通過來獲取對應的。可是有時我們需要對中的進行排序輸出,可能根據,也可能根據來排。最簡單的方法,這個是按照值排序又一個按照值排序,貌似比上一個速度要快點還是按值排序,據說更快。。。 我們知道Python的內置dictionary數據類型是無序的,通過key來獲取對應的value。可是有時我們需要對dictionary中 的item進行排序輸出,可能根據ke...
摘要:它直接作用于列表,并且沒有返回值。排序時,列表中的元素會通過函數進行處理,并按照返回值進行排序。會按照元素的長度進行升序排列按照元素的小寫進行排序后面可以是自定義函數表達式按照返回值排序元組元組是固定尺寸的元素的集合。 showImg(https://segmentfault.com/img/bVB1Wh); 剛才看到一位朋友談到如何寫出高逼格的文章,想了想確實有道理。所以特意弄一張高...
閱讀 1739·2021-09-26 09:46
閱讀 3017·2021-09-22 15:55
閱讀 2608·2019-08-30 14:17
閱讀 3027·2019-08-26 11:59
閱讀 1809·2019-08-26 11:35
閱讀 3155·2019-08-26 10:45
閱讀 3152·2019-08-23 18:28
閱讀 1106·2019-08-23 18:21