sorted() 和 lambda --> 應(yīng)用:字典排序

轉(zhuǎn)載自作者:dalalaa
鏈接:http://www.reibang.com/p/c53b2b522001
來(lái)源:簡(jiǎn)書(shū)

寫(xiě)在前面:

1. lambda 匿名函數(shù)

func = lambda x: x + 1

# 等同于:
def func(x)
    return  x + 1

#  冒號(hào)左邊  相當(dāng)于  <形參>
#  冒號(hào)右邊  相當(dāng)于  return的<返回值>

注意, 既然我們稱(chēng) lambda 為匿名函數(shù), 所以官方并 不建議 用 func 去接收, 而是 直接使用


2. 關(guān)于 sorted

sorted()函數(shù)不會(huì)改變數(shù)組本身

>>> a = [1,6,5,3,6,8,99,0]
>>> sorted(a)
[0, 1, 3, 5, 6, 6, 8, 99]
>>> a
[1, 6, 5, 3, 6, 8, 99, 0]

而 list.sort()會(huì)對(duì)list進(jìn)行修改:

>>> a = [1, 6, 5, 3, 6, 8, 99, 0]
>>> a.sort()
>>> a
[0, 1, 3, 5, 6, 6, 8, 99]

list.sort()函數(shù)只適用于數(shù)組兢哭,而sorted()還能用于其他數(shù)據(jù)結(jié)構(gòu):

>>> b = {1:'a',3:'b',7:'d',4:'4',2:'4'}
>>> sorted(b)
[1, 2, 3, 4, 7]
>>> b
{1: 'a', 2: '4', 3: 'b', 4: '4', 7: 'd'}
>>> b.sort()
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
b.sort()
AttributeError: 'dict' object has no attribute 'sort'

3. 舉個(gè)栗子:

下面用三個(gè)元組, 組成列表 通過(guò) 使用key參數(shù), 傳入lambda匿名函數(shù) 決定按哪個(gè)參數(shù)排序。

>>> a = [
(1,2,3),
(3,4,2),
(2,1,7),
]
  1. 以 元組 的 第二個(gè) 元素 排序:
>>> sorted(a, key = lambda x: x[1])
[(2, 1, 7), (1, 2, 3), (3, 4, 2)]
  1. 以 元組 的 第三個(gè) 元素 排序:
>>> sorted(a, key = lambda x: x[2])
[(3, 4, 2), (1, 2, 3), (2, 1, 7)]
  1. 以 元組 的 第一個(gè) 元素 排序:
>>> sorted(a)
[(1, 2, 3), (2, 1, 7), (3, 4, 2)]
  • sorted 負(fù)責(zé)對(duì) 列表a 進(jìn)行 迭代, 循環(huán)遍歷每一個(gè) 對(duì)象, 這里就是 遍歷這三個(gè)元組
  • a 就是那個(gè)列表
  • x 指代 元組里的 每一個(gè)對(duì)象, 即 每一個(gè)元組
  • x[1] 指代 元組的 第二個(gè)元素

4. 字典排序

>>> b = {1:'a', 3:'b', 7:'d', 4:'c', 2:'k'}
  • 直接用key排序
>>> sorted(b)
[1, 2, 3, 4, 7]
  • 下方代碼流程:
  1. sorted(b.items()... -----> 遍歷 b.items()一個(gè)元組列表[(key夫嗓,value)…]
  2. lambda a:a[1]-------------> 把每一個(gè) 遍歷的對(duì)象 賦值給 a, 返回值 a[1]即每個(gè)字典對(duì)象的value值
  3. key = ...------------------> 接收 lambda 的返回值 a[0]
    剩下的 交給天意吧...
>>> sorted(b.items(), key = lambda a:a[1])              # a[1] 即 字典的value
[(1, 'a'), (3, 'b'), (4, 'c'), (7, 'd'), (2, 'k')]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末迟螺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子舍咖,更是在濱河造成了極大的恐慌矩父,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件排霉,死亡現(xiàn)場(chǎng)離奇詭異浙垫,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)郑诺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)夹姥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人辙诞,你說(shuō)我怎么就攤上這事辙售。” “怎么了飞涂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵旦部,是天一觀的道長(zhǎng)祈搜。 經(jīng)常有香客問(wèn)我,道長(zhǎng)士八,這世上最難降的妖魔是什么容燕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮婚度,結(jié)果婚禮上蘸秘,老公的妹妹穿的比我還像新娘。我一直安慰自己蝗茁,他們只是感情好醋虏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著哮翘,像睡著了一般颈嚼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饭寺,一...
    開(kāi)封第一講書(shū)人閱讀 51,718評(píng)論 1 305
  • 那天阻课,我揣著相機(jī)與錄音,去河邊找鬼艰匙。 笑死限煞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的旬薯。 我是一名探鬼主播晰骑,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼绊序!你這毒婦竟也來(lái)了硕舆?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤骤公,失蹤者是張志新(化名)和其女友劉穎抚官,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體阶捆,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凌节,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洒试。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倍奢。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖垒棋,靈堂內(nèi)的尸體忽然破棺而出卒煞,到底是詐尸還是另有隱情,我是刑警寧澤叼架,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布畔裕,位于F島的核電站衣撬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏扮饶。R本人自食惡果不足惜具练,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甜无。 院中可真熱鬧扛点,春花似錦、人聲如沸毫蚓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)元潘。三九已至,卻和暖如春君仆,著一層夾襖步出監(jiān)牢的瞬間翩概,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工返咱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钥庇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓咖摹,卻偏偏與公主長(zhǎng)得像评姨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子萤晴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355