Python中的lambda提供了对匿名函数的支持。使用lambda,我们可以实现函数编程,即将函数作为参数传递给其他函数。在Python中,lambda的作用可以从多个例子来理解:
1, 用在过滤函数中,指定过滤列表元素的条件:
filter(lambda x: x % 3 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9])
> [3, 6, 9]
2, 用在排序函数中,指定对列表中所有元素进行排序的准则:
sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x))
> [5, 4, 6, 3, 7, 2, 8, 1, 9]
3, 用在reduce函数中,指定列表中两两相邻元素的结合条件
reduce(lambda a, b: '{}, {}'.format(a, b), [1, 2, 3, 4, 5, 6, 7, 8, 9])
> '1, 2, 3, 4, 5, 6, 7, 8, 9'
4, 用在map函数中,指定对列表中每一个元素的共同操作
map(lambda x: x+1, [1, 2,3])
> [2, 3, 4]
5, 从另一函数中返回一个函数,常用来实现函数装饰器(Wrapper),例如python的function decorators
def transform(n):
return lambda x: x + n
f = transform(3)
print f(3)
> 7