【python】無名関数「lambda式」の書き方

2021年12月7日

pythonの勉強をすすめると無名関数やlambda(ラムダ)式というものが出てきます。どのようなものかをメモしました。

どのようなときに使うかというと、通常の関数内でしっかり処理を書くほどではないが、処理をまとめておきたいときに使用します。

比較してみる

通常の表記

def calc(base,height):
    return base * height / 2

無名関数

(lambda base , height : base * height / 2)(5,10)

上記のように書いたり

calc2 = lambda base , height : base * height / 2
print(calc2(5,10))

このように変数に入れて使用することができます。

どんなときに使うのか

複雑に見えて難しく見えるので使う価値がないように見えますが、無名関数が威力を発揮する場面があります。それはmapfilterなどの「高階関数」を使用するときです。

map関数の使い方はこちら

配列aの要素をすべて2倍にするコードです

a = [2,4,6,8]
b = list(map(lambda x : x*2 ,a))

このように書くこともできます。

 a = [2,4,6,8]
 calc = lambda x : x*2 
 b = list(map(calc ,a))

for構文で書くこともできますが、コードがスッキリしますので活用してみてください。

python

Posted by Next-k