Python中匿名函数lambda的各种用法

时间:2022-04-08 20:02:51

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