【python】無名関数「lambda式」の書き方
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))
このように変数に入れて使用することができます。
どんなときに使うのか
複雑に見えて難しく見えるので使う価値がないように見えますが、無名関数が威力を発揮する場面があります。それはmapやfilterなどの「高階関数」を使用するときです。
配列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構文で書くこともできますが、コードがスッキリしますので活用してみてください。
ディスカッション
コメント一覧
まだ、コメントがありません