今回は、Pythonのlambda(ラムダ)という機能について説明します。
lambdaは、無名関数とも呼ばれます。その名の通り、lambdaを使うことによって、名前の無い関数を作ることができます。関数を作るまでもない処理をサクッと行いたい時に便利です。
lambdaの書き方
Pythonでlambdaを定義する場合は、次のように書きます。
lambda 引数: 返り値
これは、下記のコードと全く同じ動作をします。
def 関数名:(引数):
return 返り値
lambdaを使ってみる
試しに、lambdaを使って簡単な処理を実行してみたいと思います。
t = lambda x: x*5
print(t(10))
"""
関数で表すと、
def t(x):
return x*5
"""
上記コードを実行すると”50″という整数が出力されます。これは、引数の値として指定した整数”10″に5を掛ける処理を無名関数(ここでは”t”)が実行しているためです。
このように、関数を定義する場合では数行コードを書く必要があった処理を、たった一行で済ませることができます。
lambdaには引数を複数指定することも可能です。
a = lambda x,y: x*y #引数はxとy
print(a(2,5)) # 2*5 = 10が出力される
lambdaを使うタイミング
lambdaは、リストの要素を変更したい時に使われることが多いです。
map()というメソッドとlambdaを用いて、あるリストの要素を少し変えてみたいと思います。
list_a = [1,2,3,4,5,6,7,8,9,10]
print(list(map(lambda x: x**2, list_a)))
map()とは、ある関数を特定のリストに適用させたい時に使うメソッドです。ここでは、lambdaで生成した無名関数をlist_aに適用しています。map()を使うとmapオブジェクト(イテレータ)が返されるので、list()を使ってリストに変換しています。
map()を通した後のリストを見ると、要素が2乗になっているのが分かると思います。このように、lambdaを使えばたった1行でリストを好きなように変化させることができます。