日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python的map、filter、reduce函数

發布時間:2025/3/13 python 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python的map、filter、reduce函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python的map、filter、reduce函數

map函數func作用于給定序列的每個元素,并用一個列表來提供返回值。
map函數python實現代碼:


def map(func,seq):?
????mapped_seq = []?
????for eachItem in seq:?
????????mapped_seq.append(func(eachItem))?
????return mapped_seq

?

filter函數的功能相當于過濾器。調用一個布爾函數bool_func來迭代遍歷每個seq中的元素;返回一個使bool_seq返回值為true的元素的序列。

?

filter函數python代碼實現:

?


def filter(bool_func,seq):?
????filtered_seq = []?
????for eachItem in seq:?
????????if bool_func(eachItem):?
????????????filtered_seq.append(eachItem)?
????return filtered_seq

?

reduce函數,func為二元函數,將func作用于seq序列的元素,每次攜帶一對(先前的結果以及下一個序列的元素),連續的將現有的結果和下一個值作用在獲得的隨后的結果上,最后減少我們的序列為一個單一的返回值。

?

reduct函數python代碼實現:

?


def reduce(bin_func,seq,initial=None):?
????lseq = list(seq)?
????if initial is None:?
????????res = lseq.pop(0)?
????else:?
????????res = initial?
????for eachItem in lseq:?
????????res = bin_func(res,eachItem)?
????return res

?

下面是測試的代碼

?


#coding:utf-8
def map_func(lis):
????return lis + 1
def filter_func(li):
????if li % 2 == 0:
????????return True
????else:
????????return False
????????
def reduce_func(li, lis):
????return li + lis
????
li = [1,2,3,4,5]
map_l = map(map_func, li) #將li中所有的數都+1
filter_l = filter(filter_func, li) #得到li中能被2整除的
reduce_l = reduce(reduce_func, li) #1+2+3+4+5
print map_l
print filter_l
print reduce_l

運行結果如下:

?

C:\>python test1.py

?

[2, 3, 4, 5, 6]

?

[2, 4]

?

15

posted on 2012-04-25 17:52 linyawen 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/linyawen/archive/2012/04/25/2470201.html

總結

以上是生活随笔為你收集整理的Python的map、filter、reduce函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。