国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

Python的sum、map、filter和reduce

fasss / 2336人閱讀

摘要:最近在看英文版,看到了講解等函數(shù),覺(jué)得講解的思路特別好。所以,我加上了自己的理解,寫(xiě)了本篇文章。

最近在看《Think Python》(英文版),看到了講解map, reduce, filter等函數(shù),覺(jué)得講解的思路特別好。所以,我加上了自己的理解,寫(xiě)了本篇文章。

引子

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

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

    return total

運(yùn)行結(jié)果:

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

sum

將上一版代碼修改如下:

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

運(yùn)行結(jié)果:

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

reduce

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

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

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

運(yùn)行結(jié)果:

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

map

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

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

運(yùn)行結(jié)果:

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

filter

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

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

運(yùn)行結(jié)果:

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

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

本文作者: Yarving Liu
本文鏈接: http://yarving.historytale.co...
版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 CC BY-NC-SA 4.0 許可協(xié)議。轉(zhuǎn)載請(qǐng)注明出處!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/41901.html

相關(guān)文章

  • Python進(jìn)階筆記

    摘要:用匿名函數(shù)有個(gè)好處,因?yàn)楹瘮?shù)沒(méi)有名字,不必?fù)?dān)心函數(shù)名沖突。和不同的是,把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是還是決定保留還是丟棄該元素。字符串給出當(dāng)前平臺(tái)使用的行終止符。程序中間的退出,為正常退出。 列表生成式 函數(shù)的參數(shù)類(lèi)型 lambda函數(shù) map, reduce, filter, sorted函數(shù) eval, exec, join, zip函數(shù) itertools中的...

    ygyooo 評(píng)論0 收藏0
  • Python map, reduce, filtersorted

    摘要:的函數(shù)使得函數(shù)能直接以的每個(gè)元素作為參數(shù)傳遞到中并返回響應(yīng)的新的如下求的平方在需要對(duì)中的每個(gè)元素做轉(zhuǎn)換的時(shí)候會(huì)很方便比如把中的每個(gè)轉(zhuǎn)換成當(dāng)然第二個(gè)參數(shù)是也可以是或者是類(lèi)結(jié)構(gòu)的是不行的不過(guò)返回的結(jié)果都是這里順便說(shuō)一下的結(jié)構(gòu)是用表示的如是直觀的 map map(funcname, list) python的map 函數(shù)使得函數(shù)能直接以list的每個(gè)元素作為參數(shù)傳遞到funcname中...

    jlanglang 評(píng)論0 收藏0
  • [零基礎(chǔ)學(xué)python]大話題小函數(shù)(2)

    摘要:上一講和本講的標(biāo)題是大話題小函數(shù),所謂大話題,就是這些函數(shù)如果溯源,都會(huì)找到聽(tīng)起來(lái)更高大上的東西。是提出的一個(gè)軟件架構(gòu),用于大規(guī)模數(shù)據(jù)集大于的并行運(yùn)算。 上一講和本講的標(biāo)題是大話題小函數(shù),所謂大話題,就是這些函數(shù)如果溯源,都會(huì)找到聽(tīng)起來(lái)更高大上的東西。這種思維方式絕對(duì)我堅(jiān)定地繼承了中華民族的優(yōu)良傳統(tǒng)的。自從天朝的臣民看到英國(guó)人開(kāi)始踢足球,一直到現(xiàn)在所謂某國(guó)勃起了,都一直在試圖論證足球起...

    leejan97 評(píng)論0 收藏0
  • Python 進(jìn)階之路 (六) 九淺一深 lambda,陳獨(dú)秀你給我坐下!

    摘要:好啦,首先讓我們先搞明白基礎(chǔ)定義,到底是什么表達(dá)了中用于創(chuàng)建匿名函數(shù)的特殊語(yǔ)法。其實(shí)總結(jié)起來(lái),可以理解為一個(gè)小的匿名函數(shù),函數(shù)可以使用任意數(shù)量的參數(shù),但只能有一個(gè)表達(dá)式。 lambda是什么 大家好,今天給大家?guī)?lái)的是有關(guān)于Python里面的lambda表達(dá)式詳細(xì)解析。lambda在Python里面的用處很廣,但說(shuō)實(shí)話,我個(gè)人認(rèn)為有關(guān)于lambda的討論不是如何使用的問(wèn)題,而是該不該用...

    WelliJhon 評(píng)論0 收藏0
  • Python 進(jìn)階之路 (五) map, filter, reduce, zip 一網(wǎng)打盡

    摘要:另外,這些中的每一個(gè)都是純函數(shù),有返回值。例如,如果要計(jì)算整數(shù)列表的累積乘,或者求和等等基礎(chǔ)語(yǔ)法參數(shù)是連續(xù)作用于每一個(gè)元素的方法,新的參數(shù)為上一次執(zhí)行的結(jié)果,為被過(guò)濾的可迭代序列返回值最終的返回結(jié)果在中,是一個(gè)內(nèi)置函數(shù)。 簡(jiǎn)潔的內(nèi)置函數(shù) 大家好,我又回來(lái)了,今天我想和大家分享的是Python非常重要的幾個(gè)內(nèi)置函數(shù):map,filter,reduce, zip。它們都是處理序列的便捷函數(shù)...

    ccj659 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<