目次
(確認環境:Python 3)
無名関数(ラムダ式)とは
| 変数 = lambda 引数 : 戻り値 |
- 無名関数なので関数名がありません。
- キーワードのlambda(ラムダ)を使用します。ラムダ式とも呼ばれます。
- コロンの左側が引数で、右側が戻り値です。
Pythonの慣習としては、変数に代入するならdefを使うほうが推奨されています。
ラムダ式はその場で使い捨てる関数を渡したいときに便利です。
関数から無名関数にするサンプル
1.以下の1,2行目は関数です。
def test1(a):
return a + " and cat"
print(test1("dog")) # dog and cat
2.上記の関数を無名関数にします。
b = lambda a : a + " and cat"
print(b("dog")) # dog and cat
1行目は、無名関数です。関数名がありません。
1行目の
コロン(:)の左側のaが引数です。
コロン(:)の右側のa + "and cat"が戻り値です。
コールバック関数に無名関数を使用する
| 変数 = lambda 引数 : 戻り値 |
関数の引数に無名関数をセットするサンプルです。
コールバック関数とは、他の関数に渡されて、その中で呼び出される関数のことです。
def test1(x, y):
z = y(2, 3)
return x + str(z)
print(test1("The result is ", lambda a, b: a * b)) # The result is 6
5行目のtest1関数を呼び出す2つめの引数(lambda以降)は無名関数です。1行目の関数の引数yに無名関数を渡しています。
1行目の
xは、文字列を受け取る引数です。
yは、関数を受け取る引数です。
2行目は、受け取った関数yを2と3を引数として実行します。
※1行目のtest1は、関数を引数として受け取る関数なので、高階関数と呼びます。
関連の記事
