久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    python中的map、filter、reduce函數(shù)

     橙zc 2014-09-03
    三個函數(shù)比較類似,都是應(yīng)用于序列的內(nèi)置函數(shù)。常見的序列包括list、tuple、str。

    1.map函數(shù)
    map函數(shù)會根據(jù)提供的函數(shù)對指定序列做映射。
    map函數(shù)的定義:
    map(function, sequence[, sequence, ...]) -> list
    通過定義可以看到,這個函數(shù)的第一個參數(shù)是一個函數(shù),剩下的參數(shù)是一個或多個序列,返回值是一個集合。
    function可以理解為是一個一對一或多對一函數(shù),map的作用是以參數(shù)序列中的每一個元素調(diào)用function函數(shù),返回包含每次function函數(shù)返回值的list。
    比如要對一個序列中的每個元素進行平方運算:
    map(lambda x: x ** 2, [1, 2, 3, 4, 5])
    返回結(jié)果為:
    [1, 4, 9, 16, 25]
    在參數(shù)存在多個序列時,會依次以每個序列中相同位置的元素做參數(shù)調(diào)用function函數(shù)。
    比如要對兩個序列中的元素依次求和。
    map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
    map返回的list中第一個元素為,參數(shù)序列1的第一個元素加參數(shù)序列2中的第一個元素(1 + 2),
    list中的第二個元素為,參數(shù)序列1中的第二個元素加參數(shù)序列2中的第二個元素(3 + 4),
    依次類推,最后的返回結(jié)果為:
    [3, 7, 11, 15, 19]
    要注意function函數(shù)的參數(shù)數(shù)量,要和map中提供的集合數(shù)量相匹配。
    如果集合長度不相等,會以最小長度對所有集合進行截取。
    當(dāng)函數(shù)為None時,操作和zip相似:
    map(None, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
    返回結(jié)果為:
    [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]





    2.filter函數(shù)
    filter函數(shù)會對指定序列執(zhí)行過濾操作。
    filter函數(shù)的定義:
    filter(function or None, sequence) -> list, tuple, or string
    function是一個謂詞函數(shù),接受一個參數(shù),返回布爾值True或False。
    filter函數(shù)會對序列參數(shù)sequence中的每個元素調(diào)用function函數(shù),最后返回的結(jié)果包含調(diào)用結(jié)果為True的元素。
    返回值的類型和參數(shù)sequence的類型相同
    比如返回序列中的所有偶數(shù):
    def is_even(x):
    return x & 1 != 0

    filter(is_even, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
    返回結(jié)果為:
    [1, 3, 5, 7, 9]
    如果function參數(shù)為None,返回結(jié)果和sequence參數(shù)相同。





    3.reduce函數(shù)
    reduce函數(shù),reduce函數(shù)會對參數(shù)序列中元素進行累積。
    reduce函數(shù)的定義:
    reduce(function, sequence[, initial]) -> value
    function參數(shù)是一個有兩個參數(shù)的函數(shù),reduce依次從sequence中取一個元素,和上一次調(diào)用function的結(jié)果做參數(shù)再次調(diào)用function。
    第一次調(diào)用function時,如果提供initial參數(shù),會以sequence中的第一個元素和initial作為參數(shù)調(diào)用function,否則會以序列sequence中的前兩個元素做參數(shù)調(diào)用function。
    reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)
    結(jié)果為21(  (((((1+2)+3)+4)+5)+6)  )
    reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])
    結(jié)果為20

    注意function函數(shù)不能為None。

      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 亚洲 校园 欧美 国产 另类| 99久久久国产精品消防器材| 日韩AV高清在线看片| 在线天堂最新版资源| 亚洲尤码不卡av麻豆| 2019国产精品青青草原| 国产69囗曝吞精在线视频| 国产亚洲精品第一综合另类无码无遮挡又大又爽又黄的视频 | 国产精品专区第1页| 国产精品国产精品国产专区不卡| 国产欧美日韩亚洲一区二区三区| 亚洲 另类 日韩 制服 无码| 亚洲精品一区二区动漫| 中文字幕AV无码一二三区电影| 亚洲精品免费一二三区| 精品国产亚洲一区二区三区 | 日韩av综合免费在线| 国色天香天天影院综合网| 国产福利深夜在线观看| 国产精品久久久久AV福利动漫| 亚洲日韩性欧美中文字幕| 18无码粉嫩小泬无套在线观看| 国产中文成人精品久久久| 真人性囗交视频| 亚洲另类无码一区二区三区| 国产在线午夜不卡精品影院| 草草影院精品一区二区三区| 天天综合亚洲色在线精品| 国产精品99中文字幕| 久久人人玩人妻潮喷内射人人| 日本怡春院一区二区三区| 亚洲天堂av日韩精品| 精品国产乱码久久久久APP下载| AV喷水高潮喷水在线观看COM| 日日碰狠狠添天天爽五月婷| 一本色道久久88亚洲精品综合| 少妇和邻居做不戴套视频| 91中文字幕一区二区| 再深点灬舒服灬太大了少妇| 国产青榴视频在线观看| 男人狂桶女人高潮嗷嗷|