Python ラムダ関数

ラムダ関数は、小さな匿名関数です。

ラムダ関数は任意の数の引数を取ることができますが、式は1つだけです。

構文

lambda 引数 : 式

式が実行され、その結果が返されます。

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

ラムダ関数は任意の数の引数を取ることができます。

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

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

ラムダ関数の利用

ラムダの真の力は、別の関数の中で匿名関数として使用するときによく示されます。

もし、1つの引数を受け取る関数定義があり、その引数が未知の数値と乗算される場合:

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))

また、同じ関数定義を使用して、両方の関数を同じプログラム内に作成します:

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

mydoubler = myfunc(2)
mytripler = myfunc(3)

print(mydoubler(11))
print(mytripler(11))

ラムダ関数は、匿名関数が一時的に必要な場合に使用します。