今回は関数のラムダ式について確認します。今までは引数について確認してきましたがラムダ式はまた違ったものになりますので考え方をリセットして確認していきましょう。
ラムダ式とは
まずラムダ式とは何なのかということについて確認します。実は多くのプログラミング言語で使われているこの記法なのですが、ラムダ式は関数を定義することなく、その場で簡易的に使える関数の事です。別名無名関数ともいいます。イメージ的には以下のようになります。
関数名 = 引数 : 処理
こう書くとただの変数の代入のように見えますね。実際、関数を変数のように扱うイメージを持つと分りやすいのかな?と思います。
ラムダ式の書き方
それでは書き方を確認します。書き方は以下のようになります。
変数(関数名) = lambda 引数1 , 引数2 … 引数n : 式
“=” の左に関数名となる変数を、右側に “lambda” と記載し、引数を記載していきます。そして最後に処理を実施する式を書きます。これを見てもらえればわかりますが、式の領域が小さいので基本的には単純な処理を記載することになります。わざわざ関数に大げさに定義して使用するまでもない処理にラムダ式は便利です。
ここで今までの関数とラムダ式を対比して確認してみると以下のようになっております。

引数1と2を乗算してその結果を返す関数を一行で記載しました。それぞれ色で対応しております。一行で書けるのは良いのですが実際書いてみると何がどうなっているかがわからなくてコードを読み返す際に混乱しがちなので式の構成はしっかりと分かるようにしておきましょう。
ラムダ式の使いどころ、メリット
ラムダ式の使いどころは上記でも記載しましたが、簡単な処理を関数にしたいけれどわざわざ関数として定義するのが面倒な時に便利です。
またそのほかの使い道としては関数を引数にとる関数があります。その引数にラムダ式で定義した関数を利用することができます。これは次回触れる予定ですのでそちらで解説しますがそういったときに利用できます。
1. 簡単な関数を短く記載できる
2. 関数の引数として扱える
ラムダ式の例
最後にラムダ式の例を確認しましょう。
1 2 3 4 5 6 7 8 9 10 |
#足し算の結果を返す def normalTashizan(num1 , num2): return num1 + num2 print("通常の関数の計算を出力 : " + str(normalTashizan(6 , 4))) #上記の関数を lambdaTashizan = lambda num1 , num2 : num1 + num2 print("ラムダ式の関数の計算を出力 : " + str(lambdaTashizan(3,4))) |
普通の関数とそれをラムダ式で表現した関数を用意しました。3行が2行になっていますね。
正直この程度のものでしたらラムダ式を用いらずとも良いかなという気もします。なのでどちらが読みやすいかで判断するといいかもしれません。
今回はここまでです。
お疲れ様でした。
コメント