Python的sum胖眷、map恕酸、filter和reduce

最近在看《Think Python》(英文版)扒磁,看到了講解map, reduce, filter等函數(shù),覺得講解的思路特別好式曲。所以妨托,我加上了自己的理解,寫了本篇文章吝羞。

引子

如果要對列表中的數(shù)字求和兰伤,我們可以這樣做:

def add_all(t):
    """t is a list of nums"""
    total = 0
    for x in t:
        total += x

    return total

運行結(jié)果:


運行結(jié)果

由于python中求和操作太常見了,所以python提供了內(nèi)置函數(shù)sum來進行這項操作

sum

將上一版代碼修改如下:

if __name__ == '__main__':
    t = [1, 2, 3, 4]
    print sum(t)

運行結(jié)果:


運行結(jié)果

像這種從一個列表中得出一個結(jié)果的操作钧排,也叫reduce敦腔,除了求和這一種reduce操作外,python還支持自定義的方式

reduce

比如恨溜,我不是想對隊列求和符衔,而是想得到列表各數(shù)字的乘積,可以利用reduce這樣實現(xiàn):

def multiple_all(x, y):
    return x * y

if __name__ == '__main__':
    t = [1, 2, 3, 4]
    print reduce(multiple_all, t)

運行結(jié)果:


運行結(jié)果

上面介紹了將一個從一個列表得到一個結(jié)果的情形糟袁,還有一種情形是:按照某個規(guī)律對列表中的元素一一轉(zhuǎn)換判族,這就要用到map內(nèi)置函數(shù)了

map

如果給定一個列表(元素為字符串),要把列表元素首字母大寫项戴,可以這樣做

if __name__ == '__main__':
    t = ['hello', 'world', 'yarving']
    print map(lambda x: x.capitalize(), t)

運行結(jié)果:


運行結(jié)果

還有一種情況形帮,是要將列表里的元素過濾出去,可以用到filter函數(shù)

filter

給定一個列表(元素為數(shù)字)周叮,如果要僅保留不大于4的數(shù)字辩撑,可以這樣做:

if __name__ == '__main__':
    t = [1, 2, 3, 4, 5, 6, 7]
    print filter(lambda x: x <= 4, t)

運行結(jié)果:


運行結(jié)果

獲取《Think Python》(英文版)電子書

如想要獲取《Think Python》(英文書)的PDF版本,可發(fā)送郵件到 yarving@qq.com 仿耽,并標明主題 "Think Python" 合冀。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者氓仲。
  • 序言:七十年代末水慨,一起剝皮案震驚了整個濱河市得糜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晰洒,老刑警劉巖朝抖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異谍珊,居然都是意外死亡治宣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門砌滞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侮邀,“玉大人,你說我怎么就攤上這事贝润“砑耄” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵打掘,是天一觀的道長华畏。 經(jīng)常有香客問我,道長尊蚁,這世上最難降的妖魔是什么亡笑? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮横朋,結(jié)果婚禮上仑乌,老公的妹妹穿的比我還像新娘。我一直安慰自己琴锭,他們只是感情好晰甚,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著祠够,像睡著了一般压汪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上古瓤,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天止剖,我揣著相機與錄音,去河邊找鬼落君。 笑死穿香,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的绎速。 我是一名探鬼主播皮获,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼纹冤!你這毒婦竟也來了洒宝?” 一聲冷哼從身側(cè)響起购公,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雁歌,沒想到半個月后宏浩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡靠瞎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年比庄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乏盐。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡佳窑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出父能,到底是詐尸還是另有隱情神凑,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布法竞,位于F島的核電站耙厚,受9級特大地震影響强挫,放射性物質(zhì)發(fā)生泄漏岔霸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一俯渤、第九天 我趴在偏房一處隱蔽的房頂上張望呆细。 院中可真熱鬧,春花似錦八匠、人聲如沸絮爷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坑夯。三九已至,卻和暖如春抡四,著一層夾襖步出監(jiān)牢的瞬間柜蜈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工指巡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淑履,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓藻雪,卻偏偏與公主長得像秘噪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子勉耀,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

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

  • python 最近學(xué)習(xí)零基礎(chǔ)入門深度學(xué)習(xí)系列帖子時,遇到了Python代碼至壤,就這個帖子代碼中值得學(xué)習(xí)的內(nèi)容暖侨,做一個...
    小雙2510閱讀 474評論 0 0
  • 要點: 函數(shù)式編程:注意不是“函數(shù)編程”,多了一個“式” 模塊:如何使用模塊 面向?qū)ο缶幊蹋好嫦驅(qū)ο蟮母拍畛缟傩浴?..
    victorsungo閱讀 1,476評論 0 6
  • Python進階框架 希望大家喜歡字逗,點贊哦首先感謝廖雪峰老師對于該課程的講解 一、函數(shù)式編程 1.1 函數(shù)式編程簡...
    Gaolex閱讀 5,493評論 6 53
  • 生活,究竟是什么跟狱?以前的我經(jīng)常會問自己俭厚,為了何生活,為了何努力驶臊,為了何奮斗挪挤,但是隨著成長工作的忙碌,自己也逐...
    M小進閱讀 324評論 0 0
  • 大夢初醒关翎,竟垂垂老矣扛门。 想不起名字,記不得愛人纵寝,亦不知身在何方论寨。 拂去灰塵,得琴一把爽茴,輕啟朽指葬凳,如癡如醉。 一曲畢...
    拓也閱讀 232評論 0 1