Python 中的 Lambda

Lambda 是什麼?

Lambda 是一個希臘字母,樣子是 λ。在其他語言中,如:Java, Ruby 等等,也有Lambda。Lambda 帶有一個「匿名的」意思,以 Python 來說,Lambda 是一個「匿名函式」。

那麼為什麼 Python 程式語言中需要 Lambda 函式呢?Lambda 函式有著簡潔,快速得出結果的特性。如果不使用 Lambda,我們使用 def 也可以達到相同的效果。

Lambda 函式的使用方法

我們先來使用 def 宣告 add 函式。Lambda 宣告 add_via_lambda 函式

執行看看

可以看出執行結果是完全一樣的,聰明的你相信已經看出規律了

前面的是參數,後面的是運算式。更清楚一點,跟 def 宣告的函式比較

運算式(expression)

運用情景:map

map 基本用法,使用 def 宣告函式

如果使用 lambda 來改寫 map,可以寫的更簡潔,一行就可以搞定。對於我們日常運算十分有幫助。

運用情景:filter

filter 的用法是 filter(函式, 列表),如果符合條件的則會被過濾出來

可以更精簡的寫成一行,效果一樣

運用情景:switch

Python 3.10 之前因為沒有類似 switch 的語法,所以可能會使用 lambda 來撰寫 switch 的邏輯。

心得

Lambda 是個很有趣的語法,寫的太多不易閱讀,用的恰恰好卻能夠讓程式更加精簡。先從看懂語法開始,了解 Lambda 可以運用在哪些地方。感覺不錯😃

參考資料

--

--

Luka Huang
Starbugs Weekly 星巴哥技術專欄

期待世界上出現更多有意思的人,希望大家都能夠變成自己想要的樣子。