Python lambda() 函數能夠簡化程序,我們可以將 lambda 表達式視為一種函數的簡化書寫方式,它可以根據輸入的值確定輸出的值。
通常 Python 定義函數時需要給定函數名稱,但是 lambda 並不需要函數名,所以我們稱 lambda 是一種匿名函數的表達式寫法。其語法如下。
lambda 參數列表, … : 表達式其中表達式之前的冒號“:”不能省略,並且不能使用 return 語句。例如,將數學函數 f(x)=3x-1 寫成 lambda 表達式,Python代碼如下:
result = lambda x : 3*x-1 #lambda()函數
print(result(3)) #輸出數值8
也就是說“:”左邊是參數,右邊是表達式或程序塊。就本例而言,“:”右邊是表達式 3*x-1,左邊參數的個數是 1。
那麼 Python自定義函數與 lambda() 函數有什麼不同呢?下面以一個簡單的例子加以說明,Python代碼如下:
def formula(x, y): #自定義函數
return 3*x+2*y
formula = lambda x, y : 3*x+2*y #表示lambda有兩個參數
print(formula (5,10)) #傳入兩個數值讓lambda()函數做運算,輸出數值35
上面的程序代碼中分別使用了自定義函數及 lambda() 函數兩種方式,我們可以觀察到自定義函數與 lambda() 函數有以下區別: