Python 的 map, filter, reduce 函数(转贴)
2011-09-27
参考文档:http://www.yuanma.org/data/2010/0310/article_4161.htm
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 序列的元素,每次携带一对(先前的结果以及下一个序列的元素),连续的将现有的结果和下一个值作用在获得的随后的结果上,最后减少我们的序列为一个单一的返回值。
reduce 函数 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