Coding筆記(2): Lambda 函式

JianJie
Jul 23, 2021

--

在Python中可以使用def來定義一個function,但有另一個運算子也可以定義一個function,其與def定義出的function相同,但只有一行,可以做為簡化程式碼的方法,使程式簡潔

Lambda語法

由於lambda只有一行,因此在撰寫時有一些限制條件

Parameter_list就相等於定義函式時的參數,可以有多個輸入參數,使用逗號分隔,之後可以在expression中使用這些參數。而expression則是運算部分,但只有一行,因此只能進行較為簡易之運算,較複雜之運算還是要使用一般function。

如要建立一個乘法function

而lambda函式支援IIFE語法,使用lambda建立函式後可以馬上執行

一樣相乘的例子

Lambda函式應用

1. filter(): 根據條件運算式,篩選特定的元素

如篩選數字:

或篩選字母開頭

2. sorted(): 根據lambda運算過後之結果進行排序

根據lambda運算後的結果進行排序,更改條件後排序

或根據不同的關鍵字進行排序

3. map(): 對輸入參數中的每一個元素進行一樣的運算

如對所有元素x2

4. reduce(): 套用物件中所有可迭代的元素兩兩進行運算,其步驟為:

a. 將物件中前兩個元素先進行lambda的運算

b. 接著將前一步驟運算結果與物件之第三個元素進行lambda運算

c. 重複第二步驟直到所有元素運算完成

以下是將所有元素相加之範例

Lambda函式與一般函式Function差異

  • Lambda函式可以不定義函式名稱,而一般函式Function需定義名稱。
  • Lambda函式只能有一行運算式,而一般函式Function可以有多行運算式。
  • Lambda函式在每一次運算完會自動回傳結果,而一般函式Function要回傳結果則要加上 return 關鍵字。

--

--

JianJie
JianJie

Written by JianJie

Image Processing / Computer Vision / Deep Learning

No responses yet