pythonのlambda(無名関数)の使い方、map関数との組み合わせについて



 

lambdaとは「無名関数」とも呼ばれています。名前の通り、「関数なのに名前がない関数」です。
通常プログラミングにおける「関数」というと名前をつけるのが普通ですよね?下の例をみてください。

 

と普通は上記のように関数には名前をつけることで、いつでもどこでも関数名を宣言することでその関数の処理を行えるわけです。

 

しかし、全部の関数に名前が必要でしょうか?例えば一回しか使わない(ある特定の場所でしか使わない)処理があるとしましょう。そんな時に関数として定義しなくても、その場だけで使える関数が「lambda(無名関数)」というわけです。

 

全体としてはそんなに重要ではないけど、これがあればこの瞬間だけものすごく助かるというものです。オーダーメイドのスーツを作っても自分以外の人にとっては無価値ですが、自分からしたらものすごく大事ですよね。そんなイメージです。

 

文章だけでは使い方がわからないと思うので簡単な例を示します。

 

これを通常の関数でかくと

 

となります。行数も減っていますね。

上の例からもわかる通りlambdaの使い方は{lambda 引数:返り値}という形になります。

 

***応用例***

これまでの説明でも「lambda」の素晴らしさはわかっていただけたかと思いますが、「lambda」の真髄は「他の関数との組み合わせ」で最大の効果を発揮することです。

 

map関数と組み合わせた例をみましょう。

関数を定義した後に、改めてmap関数内で上で定義した関数を宣言していますね。

これをlambda(無名関数)を用いると…

 

となります。map関数はmap(関数,[…, …, …])という形式をとり、第1引数で指定した関数の処理を第2引数で指定したリストの各要素に対して関数の処理を実行します。なので得られる結果はlist型であることに注意してください。

 

参考文献はこちらです。

 


スポンサーリンク

記事が役に立ったらシェア!

投稿者:

中村 俊

中村 俊

1993/09/04生まれ。機械系大学院を休学し、ベンチャーでインターンしている最中。直近では、デカルトの「方法序説」に感銘を受けた。 趣味:読書、web開発の勉強、異分野の論文読んだり、記事書いたり。 最終的には経営者か研究者になりたい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA