Python Lambda

lambda 函數是一種小的匿名函數。

lambda 函數可接受任意數量的參數,但只能有一個表達式。

語法

lambda arguments : expression

執行表達式并返回結果:

實例

一個 lambda 函數,它把作為參數傳入的數字加 10,然后打印結果:

x = lambda a : a + 10
print(x(5))

運行實例

lambda 函數可接受任意數量的參數:

實例

一個 lambda 函數,它把參數 a 與參數 b 相乘并打印結果:

x = lambda a, b : a * b
print(x(5, 6))

運行實例

實例

一個 lambda 函數,它把參數 a、b 和 c 相加并打印結果:

x = lambda a, b, c : a + b + c
print(x(5, 6, 2))

運行實例

為何使用 Lambda 函數?

當您把 lambda 用作另一個函數內的匿名函數時,會更好地展現 lambda 的強大能力。

假設您有一個帶一個參數的函數定義,并且該參數將乘以未知數字:

def myfunc(n):
  return lambda a : a * n

使用該函數定義來創建一個總是使所發送數字加倍的函數:

實例

def myfunc(n):
  return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))

運行實例

或者,使用相同的函數定義來創建一個總是使您發送的數字增加三倍的函數:

實例

def myfunc(n):
  return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))

運行實例

或者,在同一程序中使用相同的函數定義來生成兩個函數:

實例

def myfunc(n):
  return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11)) 
print(mytripler(11))

運行實例

如果在短時間內需要匿名函數,請使用 lambda 函數。