python lambda表達式簡單用法
1、lambda是什么?
看個例子:
1 g = lambda x:x+1
看一下執行的結果:
g(1)
>>>2
g(2)
>>>3
當然,你也可以這樣使用:
lambda x:x+1(1)
>>>2
可以這樣認為,lambda作為一個表達式,定義了一個匿名函數,上例的代碼x為入口參數,x+1為函數體,用函數來表示為:
1 def g(x):
2 return x+1
非常容易理解,在這里lambda簡化了函數定義的書寫形式。是代碼更為簡潔,但是使用函數的定義方式更為直觀,易理解。
Python中,也有幾個定義好的全局函數方便使用的,filter, map, reduce
>>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
>>>
>>> print filter(lambda x: x % 3 == 0, foo)
[18, 9, 24, 12, 27]
>>>
>>> print map(lambda x: x * 2 + 10, foo)
[14, 46, 28, 54, 44, 58, 26, 34, 64]
>>>
>>> print reduce(lambda x, y: x + y, foo)
139