LoginSignup
0
1

More than 5 years have passed since last update.

python  無名関数 lambda式 その3

Last updated at Posted at 2018-12-15

lambdaはdefによる関数と異なり、返り値の部分には式のみ入れることができます。
例えばdefによる関数では、

例1:"hello."と出力する関数
def say_hello():
    print("hello.")

といった処理が可能でしたが、これをlambdaで表現することはできません。
追記:Python3ではPrintが関数となり式として使えるようになったのでlambdaでも表現可能です。shiracamusさんコメントありがとうございます。

ただし、ifを用いた条件分岐に関しては三項演算子(公式には条件式)という手法を用いることでlambdaでも作成することができます。
例えば

例2:引数が3未満ならば2を掛け、3以上ならば3で割って5で足す関数
def lower_three1(x):
    if x < 3:
        return x * 2
    else:
        return x/3 + 5

上記の関数をlambdaで表現すると、

例3:lower_three1と同じ関数
lower_three2 = lambda x: x * 2 if x < 3 else x/3 + 5

このように書くことができます。三項演算子の表記は以下のようになっています。

条件を満たす時の処理 if 条件 else 条件を満たさない時の処理

このように、lambda以外にも様々な場面でコードの節約をすることができます。

引用:アイデミー データクレンジングコース
(上記の弊社サイトでは問題演習が可能です)

その1 https://qiita.com/vntomo/private/49cd45d3798bb66a3775
その2 https://qiita.com/vntomo/private/c041a004d60d00ad464b
その3 https://qiita.com/vntomo/private/fd16e40a21bde5dc03ae

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1