1. 程式人生 > >Python中匿名函式lambda的各種用法

Python中匿名函式lambda的各種用法

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