Python 学习笔记: filter(), map(), reduce()

filter(), map(), reduce() 是三个有用的内建函数:

详细描述,可参考《python核心编程》 P288

1、 filter(func, seq)

调用一个布尔函数 func() 来遍历一个 seq 中的元素,返回使得 func() 返回值为 True 的元素的序列

示例:

filter(lambda x: x%2, [1,2,3,4,5,6,7,8,9])

过滤出列表中的奇数

 

2、 map(func, seq1[,seq2,...])

对 seq1, seq2... 中相同位置上的每个元素,依次调用 func(), 并将每次调用的返回值放到一个序列中,作为最后的返回结果

示例:

map(lambda x, y: x+y, [1,2,3], [4,5,6])

将两个列表中的元素相加

 

3、 reduce(func, seq [, init])

func() 是一个二元函数,返回一个结果

reduce() 从 seq 中取出头两个元素,调用 func(), 然后用得到的结果,和 seq 中下一个元素,继续调用 func(), 迭代下去,直到 seq 

被遍历完毕,返回的是最后得到的值

示例:


reduce(
lambda x, y: x+y, [1,2,3,4,5,6,7,8,9])

对列表中的每个元素相加,求最终的和。

 

map()、 reduce() 和 google 的 map/reduce 是否有相通的地方?

 

 

posted @ 2010-06-02 18:20  rstevens  阅读(566)  评论(0)    收藏  举报