python中列表排序顽素,字典排序,列表中的字典排序

一段审、sorted高階函數(shù)

例子:

d={'a':1,'c':3,'b':2}    # 首先建一個字典d
 
#d.items()返回的是: dict_items([('a', 1), ('c', 3), ('b', 2)])
 
d_order=sorted(d.items(),key=lambda x:x[1],reverse=False)  # 按字典集合中,每一個元組的第二個元素排列抑淫。
                                                           # x相當于字典集合中遍歷出來的一個元組姥闪。
print(d_order)     # 得到:  [('a', 1), ('b', 2), ('c', 3)]

下面是sorted排序方法的詳細解釋:

  1. sorted高階函數(shù)語法格式: sorted(可迭代對象,key=函數(shù)名,reverse=False/True)
    作用:從可迭代對象中,依次取出一個元素筐喳,該元素再按照key規(guī)定的排列依據(jù)排序。
    可迭代對象:即可依次取值的對象荣月,例如:集合槐脏,序列(列表,字符串顿天,元組),字典等咽白。
    key : 是列表排列的依據(jù),一般可以自定義一個函數(shù)返回排序的依據(jù)晶框,再把函數(shù)名綁定給key。
    reverse : 譯為反轉(zhuǎn)蹲蒲,reverse默認等于False,從小到大排序届搁。等于True時窍育,從大到小排序。
  1. 匿名函數(shù)lambda的格式: 函數(shù)名 = lambda [形參1,形參2,...] : 漱抓,返回操作語句塊產(chǎn)生的結(jié)果并綁定給函數(shù)名。

例如:
key=lambda x : x[1]

x:相當于字典集合中的一個元組瞬逊, 例:dict_items([('a', 1), ('c', 3), ('b', 2)])中的('a', 1)或('c', 3)或('b', 2)

x[1]: 返回x中的第二個元素补胚,即鍵值對元組中的值追迟。dict_items([('a', 1), ('c', 3), ('b', 2)])中的1或2或3

注意:

(1) sorted函數(shù)中的可迭代對象不要用字典d,那樣只能迭代出的字典d的鍵敦间。要用d.items()才可迭代出字典的鍵值對。

例:
不能用 d_order=sorted(d,key=lambda x:x[1],reverse=False)
要用 d_order=sorted(d.items(),key=lambda x:x[1],reverse=False)

(2) sorted函數(shù)排好序后厢绝,要綁定一個對象(賦值)带猴,例:d_order=sorted(d.items(),key=lambda x:x[1],reverse=False).

因為字典是無序類型,用sorted函數(shù)排好序后不綁定d_order拴清,字典會自動打亂順序。

二口予、列表的.sort()方法

Python中的字典是無序類型,沒有自己的排序方法煤辨。但可以用列表的.sort()方法來進行排序。
我們首先要把字典轉(zhuǎn)換為列表众辨,再進行排序。
例子:

d={'a':1,'c':3,'b':2}    # 首先建一個字典d
 
d.items()        # 得到: dict_items([('a', 1), ('c', 3), ('b', 2)])
 
L=list(d.items())       # 得到列表: L=[('a', 1), ('c', 3), ('b', 2)]
 
L.sort(key=lambda x:x[1],reverse=False)  # 按列表中技肩,每一個元組的第二個元素從小到大排序浮声。
                                         # x代表從L中遍歷出的一個元組
 
print(L)      # 得到:  [('a', 1), ('b', 2), ('c', 3)]

注意:
1.上面的例子中最要的一步就是: L=list(d.items()), 即: L = list(dict_items([('a', 1), ('c', 3), ('b', 2)])

用list()列表構(gòu)造函數(shù),將L= dict_items([('a', 1), ('c', 3), ('b', 2)]) 轉(zhuǎn)變?yōu)榱斜砣蝗玫搅斜? L=[('a', 1), ('c', 3), ('b', 2)] 。

ps: 今天早上我折騰了好久才發(fā)現(xiàn)剧浸,list()構(gòu)造函數(shù)竟然可以把 d.items()產(chǎn)生的dict_items鍵值對集合類型矗钟,直接變成列表,簡直NB岸滞А!

2.再簡單說一下列表的L.sort()方法: L.sort(key=函數(shù)名,reverse=False/True)

L.sort():會自動遍歷列表中的元素冯吓,即依次取出一個元素疮跑。再以key綁定的函數(shù)為依據(jù)排序。

例如:
L.sort(key=lambda x:x[1],reverse=False) #L=[('a', 1), ('c', 3), ('b', 2)]

從列表L中取出第一個元素('a', 1)元組祖娘,以元組的第二個元素'1'為排序依據(jù),

再依次從列表中依次取出第二掀潮,第三,...個元素確定排序依據(jù)整以,

最后reverse=False胧辽,按從小到大的順序排列公黑。

按字典值排序(默認為升序)

x = {1:2, 3:4, 4:3, 2:1, 0:0}
sorted_x = sorted(x.iteritems(), key=lambda x : x[1])

包含字典dict的列表list的排序方法

users = [{"name":"1","age":"30"},{"name":"2","age":"25"},{"name":"3","age":"20"}]
print(users)
sorted_users = sorted(users, key=lambda x : x["age"])
print(sorted_users)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市人断,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涩金,老刑警劉巖暇仲,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異全度,居然都是意外死亡斥滤,警方通過查閱死者的電腦和手機将鸵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門顶掉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挑胸,“玉大人,你說我怎么就攤上這事嗜暴。” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵舆逃,是天一觀的道長戳粒。 經(jīng)常有香客問我路狮,道長蔚约,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任砸抛,我火速辦了婚禮,結(jié)果婚禮上直焙,老公的妹妹穿的比我還像新娘。我一直安慰自己斤吐,他們只是感情好厨喂,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著臼婆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颁褂。 梳的紋絲不亂的頭發(fā)上傀广,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音誓酒,去河邊找鬼。 笑死靠柑,一個胖子當著我的面吹牛吓懈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播耻警,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼甘穿,長吁一口氣:“原來是場噩夢啊……” “哼腮恩!你這毒婦竟也來了温兼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤荡含,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后内颗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡恨溜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年糟袁,在試婚紗的時候發(fā)現(xiàn)自己被綠了躺盛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片项戴。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡周叮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出仿耽,到底是詐尸還是另有隱情各薇,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布峭判,位于F島的核電站,受9級特大地震影響奕删,放射性物質(zhì)發(fā)生泄漏治宣。R本人自食惡果不足惜急侥,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贝润。 院中可真熱鬧,春花似錦打掘、人聲如沸鹏秋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽百拓。三九已至晰甚,卻和暖如春衙传,著一層夾襖步出監(jiān)牢的瞬間厕九,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工俊鱼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留畅买,地道東北人并闲。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓焙蚓,卻偏偏與公主長得像洒宝,于是被迫代替她去往敵國和親购公。 傳聞我的和親對象是個殘疾皇子雁歌,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容