Python 無名関数のサンプル(lambda)

目次

(確認環境: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は、関数を引数として受け取る関数なので、高階関数と呼びます。

関連の記事

Python 関数のサンプル(def)
Python ローカル変数とグローバル変数

△上に戻る