1. 程式人生 > >python 匿名函數 lambda

python 匿名函數 lambda

lis 不用 有一個 def 函數參數 沖突 pre 利用 匿名

一、lambda使用語法:

關鍵字lambda表示匿名函數,冒號前面的x表示函數參數,冒號後面只能有一個表達式,不用寫return,返回值就是該表達式的結果。

1 >>> list(map(lambda x: x * x, [1, 2, 3, 4, 5]))
2 [1, 4, 9, 16, 25]

無參數lambda表達式:

1 >>> f = lambda : 2 * 2
2 >>> f()
3 4

二、匿名函數是一個函數對象

用匿名函數有個好處,因為函數沒有名字,不必擔心函數名沖突。此外,匿名函數也是一個函數對象,也可以把匿名函數賦值給一個變量,再利用變量來調用該函數:

1 >>> f = lambda x: x * x
2 >>> f
3 <function <lambda> at 0x1014aea60>
4 >>> f(5)
5 25

同樣可以把匿名函數作為返回值:

1 >>> def build(x, y):
2 ...     return lambda : x * x + y * y
3 ... 
4 >>> f = build(1, 2)
5 >>> f()
6 5

python 匿名函數 lambda