いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【Python】無名関数を使いたい

・お題:無名関数を使えるようになりたい。

 

Pythonでは、必要に応じて関数を組んで処理を回すことがある。defを使って書くほどもない関数を、簡単に記述する際に無名関数というやつを使うらしい。

・defで定義して特に不自由することはないと思うけれど、無名関数のlambdaという響きが気になるので、使えるようになりたい。

 

・例えば、defで以下の関数を作成したとする。

def test1(a,b):
    return a**2+b

この後に、

test1(2,3)

を実行すると、

7が返ってくる。

 

・これをlambdaで記述すると、

test2=lambda a,b:a**2+b

になる。

関数=lambda 引数,引数,…… : 計算の内容

といった感じらしい。

test2(2,3)を実行すると、7が返ってくる。

・初期値も、defと同様に設定できる。

test3=lambda a=2,b=3:a**2+b

test3()

で7が返ってくる。

・ifも使える。

Guki = lambda x: "kisu" if x % 2 else "gusu"

の後に、

Guki(7)

を実行すると、

"kisu"が返ってくる。

・実際には、そもそも命名せずに使う場合もあるみたい。

 

・lambdaをラムダと読める時点でカッコいい。

 

おわり