Overview

「Lambda function」又稱「匿名函式」,不需要定義名稱,只有一行運算式,並且會自動回傳結果,能簡化複雜的程式碼。在 Python 中,函式也是物件 (Object),是 function 的實體。如果要定義一個「一般函式」,可以使用關鍵字 def 來定義。而「匿名函式」也是函式的一種,同樣也是 function 的實體,因此在傳入 function 參數的物件中,除了使用「一般韓式」外,也可以使用匿名函式。

Usage

語法 : lambda parameter: expression

範例:

這是最基本的範例,使用方法就如同使用關鍵字 def 宣告函式依樣,呼叫並傳入引數。

concat = lambda x, y: x + y
t = concat('a', 'b')
print(t)  # ab

只是 Python 希望跟 def 做出區分,不建議使用上方的方法,一般建議 lambda 就是用過即丟,不用賦予這個函式一個變數,可以使用 IIFE (immediately invoked function expression) 語法立即傳入引數並執行函式。

語法:(lambda parameter: expression)(argument)

t = (lambda x, y: x + y)('a', 'b')
print(t)  # ab

Reference

[Python教學]Python Lambda Function應用技巧分享

lambda 運算式

[Day20]lambda的三角督...filter(),map(),reduce() - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天