您的位置:首页 > 编程语言 > Python开发

【python】filter,map,reduce和lambda函数介绍

2014-07-28 09:57 926 查看
filter(function, iterable)
map(function, iterable)
reduce(function, sequence)

filter将 function依次作用于iterable的每个元素,如果返回值为true, 保留元素,否则从iterable里面删除。function必须返回是一个bool类型的函数。
例如:


def test(x):
return (x > 3)
filter(test, [1, 2, 3, 4, 5]) =====> [4, 5]


map将function作用于iterable每个元素,将对应输出结果保存为一个list。function具有返回值。

例如


def add(x):
return (1 + x)
map(test, [1, 2, 3, 4, 5]) =====> [2, 3, 4, 5, 6]


reduce先把iterable的前两个元素调用函数 function,再以返回值和第三个参数调用,依次执行下去

def add(x,y): return x+y
reduce(add, range(1, 11))
55


lambda:这是Python支持一种有趣的语法,它允许你快速定义单行的最小函数,类似与C语言中的宏,这些叫做lambda的函数,是从LISP借用来的,可以用在任何需要函数的地方:

>>> g = lambda x: x * 2
>>> g(3)
6
>>> (lambda x: x * 2)(3)
6


lambda表达式返回一个函数对象
例子:

func = lambda x,y:x+y


func相当于下面这个函数

def func(x,y):
return x+y


注意def是语句而lambda是表达式
下面这种情况下就只能用lambda而不能用def

[(lambda x:x*x)(x) for x in range(1,11)]


map,reduce,filter中的function都可以用lambda表达式来生成!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: