Python中sorted方法與operator.itemgetter方法的共用

Python中的sorted函數(shù)和operator.itemgetter可以說經(jīng)常一起用藐翎,主要是處理一些復(fù)雜的排序問題的時(shí)候漂问。

operator.itemgetter函數(shù)

operator模塊提供的itemgetter函數(shù)主要用于獲取傳入對(duì)象的特定索引的值,例如:

a = [1,2,3] 
b = operator.itemgetter(1)      //定義函數(shù)b刻帚,獲取對(duì)象的第1個(gè)值
b(a) 

輸出 2

b=operator.itemgetter(1,0)   //定義函數(shù)b拜效,獲取對(duì)象的第1個(gè)和第0個(gè)值
b(a) 

輸出 (2, 1)

Tips:operator.itemgetter函數(shù)獲取的不是值,而是定義了一個(gè)函數(shù)浓恶,通過該函數(shù)作用到對(duì)象上才能獲取值。

sorted函數(shù)

Python內(nèi)置的排序函數(shù)sorted可以對(duì)iterator進(jìn)行排序结笨,可參加官網(wǎng)文檔包晰,該函數(shù)原型為:

sorted(iterable[, cmp[, key[, reverse]]])

參數(shù)解釋:

  1. iterable:指要排序的 list 或者 iterable;
  2. cmp:是指定排序時(shí)進(jìn)行比較的函數(shù)炕吸,可以指定一個(gè)函數(shù)或者lambda函數(shù)伐憾。
  3. key:指定取待排序元素的哪一項(xiàng)進(jìn)行排序。

舉例來(lái)說赫模,students 是一個(gè) list树肃,用sorted進(jìn)行比較時(shí)可以自己定cmp函數(shù),例如這里要通過比較每個(gè)元素的第三個(gè)值來(lái)排序瀑罗,代碼可以這樣寫:

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

sorted(students, key=lambda student : student[2])

有了上面的 operator.itemgetter 函數(shù)胸嘴,也可以用該函數(shù)來(lái)實(shí)現(xiàn)。例如要通過student 的第三個(gè)域排序斩祭,可以這么寫:

sorted(students, key=operator.itemgetter(2))

sorted 函數(shù)也可以進(jìn)行多級(jí)排序筛谚,例如要根據(jù)第二個(gè)域和第三個(gè)域進(jìn)行排序,可以這么寫:

sorted(students, key=operator.itemgetter(1,2)) 

即先跟句第二個(gè)域排序停忿,再根據(jù)第三個(gè)域排序。

  1. reverse參數(shù)是一個(gè)bool變量蚊伞,表示升序還是降序排列席赂,默認(rèn)為False(升序排列),定義為True時(shí)將按降序排列时迫。

sorted函數(shù)更多的例子可以參考官網(wǎng)文檔:https://wiki.python.org/moin/HowTo/Sorting/颅停。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市掠拳,隨后出現(xiàn)的幾起案子癞揉,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喊熟,死亡現(xiàn)場(chǎng)離奇詭異柏肪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)芥牌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門烦味,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人壁拉,你說我怎么就攤上這事谬俄。” “怎么了弃理?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵溃论,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我痘昌,道長(zhǎng)钥勋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任控汉,我火速辦了婚禮笔诵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘姑子。我一直安慰自己乎婿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布街佑。 她就那樣靜靜地躺著谢翎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沐旨。 梳的紋絲不亂的頭發(fā)上森逮,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音磁携,去河邊找鬼褒侧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛谊迄,可吹牛的內(nèi)容都是我干的闷供。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼统诺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼歪脏!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起粮呢,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤婿失,失蹤者是張志新(化名)和其女友劉穎钞艇,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體豪硅,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哩照,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舟误。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片葡秒。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嵌溢,靈堂內(nèi)的尸體忽然破棺而出眯牧,到底是詐尸還是另有隱情,我是刑警寧澤赖草,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布学少,位于F島的核電站,受9級(jí)特大地震影響秧骑,放射性物質(zhì)發(fā)生泄漏版确。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一乎折、第九天 我趴在偏房一處隱蔽的房頂上張望绒疗。 院中可真熱鬧,春花似錦骂澄、人聲如沸吓蘑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)磨镶。三九已至,卻和暖如春健提,著一層夾襖步出監(jiān)牢的瞬間琳猫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工私痹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脐嫂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓紊遵,卻偏偏與公主長(zhǎng)得像雹锣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子癞蚕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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

  • 文:鄭元春一個(gè)有著美好夢(mèng)想的coder! 人生苦短辉哥,我用Python桦山。 P.S. 個(gè)人認(rèn)為攒射,查找和排序是算法的核心...
    北靜王閱讀 2,120評(píng)論 3 10
  • 之前在Udemy上跟著Jose Portilla老師過了一遍Python+Django的教程,做了一個(gè)小博客恒水。但是...
    greatseniorsde閱讀 443評(píng)論 0 0
  • 一聲輕喚会放,說走就走。到山里走走钉凌,落山的太陽(yáng)照著你嫣紅的臉龐咧最;到水邊走走,奔騰的溪水拉住你輕盈的步履御雕。慢慢走...
    冰夫閱讀 209評(píng)論 0 0
  • 閱讀本篇大概需要20分鐘 視頻編輯分為兩部分:Camrea Engine(視頻資源采集)和Video Edit E...
    董二千閱讀 2,074評(píng)論 0 2
  • 忙碌了一天 太陽(yáng)已落在了地平線 可燈火依舊闌珊 而照片還在 人說 相遇是緣起 相知是緣始 卻總無(wú)法答到相守的緣滿 ...
    浙江小王子食品閱讀 164評(píng)論 0 1