pythonのlambda(ラムダ)式関数について優しく解説

python

 lambda(ラムダ)式(無名関数)て聞いた事あるけど,一体何がいいの?関数defを定義してるけど,1回しか使わないから,もっとスキッリした書き方はないだろうか?こんな疑問をお持ちに皆様に本記事はlambda式の解説から使い方を解説していきます.

 スポンサーリンク

スポンサーリンク

lambda(ラムダ)式て何

 初めにlambda式を知らなくてもプログラムは書けます.ではなぜ,lambda式でプログラムを書くのかそれは便利だからです.lambda式は関数を定義することができ,無名関数と呼ばれています.作りたい関数を1行にまとめる事ができるのがポイントです.

lambda式の書式

lambda 引数1,引数2,….:計算式

・単純な掛け算をlambda式を使って書いてみましょう.

[IN]

lambda a,b :a*b
print((lambda a,b :a*b)(a=2,b=5))

[OUT]

10

lambda式で繰り返し処理

 lambdaで繰り返し処理をするときはmap()関数を使います.
map()関数は関数(計算式)をリストに記載された順に当てはめて計算を行い値をを返します.以下にmap()関数の書式を記載します.

map()関数書式

map(関数,リスト)

・品物をセールの時に20%OFFで売る時の売値をmap()関数とlambdaを使って作成します.

[IN]

items = [2000,3000,4000,5000]  #品物の価格リスト
sale=list(map(lambda i : i *0.8, items ))#map()で繰り返す.
print(sale)

[OUT]

[1600.0, 2400.0, 3200.0, 4000.0]

1行で関数を使った繰り返し計算ができました.

lambda式でif文と組み合わせる

lambda式でif文を書くには三項演算子を用います.

三項演算子の書式

(条件がTRUEの時の計算式) if(条件式)  else(条件がFLSEの時の計算式)
lambda式でif文を使う三項演算子を使うには,lambdaの書式の後に三項演算子を書きます.
lambda 引数1,引数2,…:三項演算子
・先程のセールで品物の価格が4000円以上は30%割引とし、それ以外は20%割り引きにしたときの価格を求めます.
この条件で三項演算子の部分は
 i*0.7 if i>=4000 else i*0.8
 書式を文章にすと以下のようになります.
TRUEの時は30%割引, 条件は品物が4000以上,偽の時は20%割引

[IN]

items = [2000,3000,4000,5000]  #品物の価格リスト
sale=list(map(lambda i : i *0.7 if i>=4000 else i*0.8 , items  ))
print(sale)

[OUT]

[1600.0, 2400.0, 2800.0, 3500.0]

これでIF文も繰り返しも1行で書けるようになりました.

トップページへ戻る

 スポンサーリンク

コメント

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