当サイトについて知りたい方はこちら

Python: “lambda”で無名関数を作る

今回は、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行でリストを好きなように変化させることができます。

タイトルとURLをコピーしました