Python中匿名函式lambda的各種用法
阿新 • • 發佈:2019-02-04
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