Python Lambda

lambda 関数は小さな匿名関数です。

lambda 関数は任意の数の引数を受け入れますが、一つの式のみをもちます。

文法

lambda arguments : expression

式を実行して結果を返します:

一つの lambda 関数が、引数として渡された数字に 10 を足し、結果を出力します:

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

実行例

lambda関数は任意の数の引数を受け入れます:

引数aとbをかけ合わせて結果をプリントするlambda関数:

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

実行例

引数a、b、cを足し合わせて結果をプリントするlambda関数:

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

実行例

なぜLambda関数を使用するべきですか?

lambdaを別の関数内のアノニマス関数として使用すると、lambdaの強力な能力がよりよく示されます。

引数を持つ関数定義があり、その引数は未知の数字に乗られると仮定します:

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

この関数定義を使用して、常に送信する数字を2倍に増やす関数を作成します:

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

実行例

または、同じ関数定義を使用して、常に送信する数字を3倍に増やす関数を作成します:

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

実行例

または、同じプログラム内で同じ関数定義を使用して2つの関数を生成します:

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

実行例

短時間でアノニマス関数が必要な場合は、lambda関数を使用してください。