1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

Python超入門その15〜かっこいいラムダ式を使いこなそう〜

Pocket

はじめに

Pythonの関数は使いこなせるようになりましたか?

Pythonには、関数に似たものがもうひとつあります。それは「ラムダ式」です。ちょっとかっこいい名前ですね。ラムダという名前は数学由来ですが、ラムダ式自体はそれほど難しいものではありません。簡単にいえば、関数の別の書き方なのです。

この記事では、Python初心者の方向けに、Pythonでのラムダ式の書き方・使い方についてお伝えしていきます。ラムダ式はプログラミングの幅を広げてくれますので、ぜひ習得しておきましょう。

ラムダ式ってどんなもの?

ラムダ式は、別名「匿名関数」とも呼ばれる名前がない関数のようなものです。関数型プログラミングから取り入れられた機能であり、オブジェクト指向プログラミングと併用することでプログラミングの幅が広がります。具体的な活用方法については後ほど紹介します。

ラムダ式は関数に近いものですが、関数とは異なる特性を持っています。次に、ラムダ式と関数との違いについてみていきましょう。

ラムダ式と関数の違い

ラムダ式は”式”であり、”文”ではない

最も重要な違いは、ラムダ式はあくまで”式”であり、”文”ではないことです。つまり、ラムダ式は単一行の式しか持つことができず、複数行のブロックを持つことはできません。このため、ラムダ式で複雑な処理を行うことは困難です。

ラムダ式は、関数で書くと冗長になりがちなちょっとした処理をインラインで書くために使われることが多いでしょう。

関数の引数として直接渡せる

関数の引数として関数を渡すことができます。しかし、関数の場合は直接引数として渡すことはできず、どこか別の場所で定義してから渡す必要があります。一方、ラムダ式は関数の引数としてインラインで記述することができ、よりシンプルに記述することが可能です。

ラムダ式に名前はない

冒頭でもお伝えしましたが、ラムダ式自体には名前はありません。関数のように定義時に名前をつけることはなく、無名のまま直接関数などに渡される場合が多いです。または、変数に代入して、擬似的に名前をつけることもできます。

基本的なラムダ式の書き方・使い方

それでは、具体的なラムダ式の書き方・使い方をみていきましょう。
次の例をみて下さい。

例:

 

例では、ラムダ式を変数に代入して呼び出しています。ラムダ式の定義は、関数のdefキーワードをlambdaに変更したような形になります。重要な違いは、式であること(ブロックが持てない)ことと評価した結果を自動的に返り値として返すことです。
つまり、先程の例のラムダ式は、下記の関数と等価です。

例:

 

ラムダ式の使い方については、関数と同じように呼び出せます。
次に、ラムダ式の応用例についてみていきましょう。

応用的なラムダ式の使い方

ラムダ式が最も活躍する場面は、関数の引数として渡されるケースです。
たとえば、次のような使い方が考えられます。

例:

 

例では、1行目で関数を受け取る関数を定義しています。このような関数を「高階関数」と呼びます。簡単に説明すると、リスト(list)とラムダ式(where)を受け取り、リストからラムダ式がTrueを返す要素のみを抽出する関数になっています。

この関数を使って、数値リスト(nums)から偶数のみ、および奇数のみを取り出しています。偶数・奇数判定がラムダ式によって行われていることに注目して下さい。このように、ラムダ式(関数)を引数に取ることで、関数の動作を柔軟にカスタマイズすることができるのです。

実は、このような関数は自分で定義しなくてもビルトイン関数として組み込まれています。先程自作したfilterをはじめ、map・reduceなどの便利な関数が提供されています。
プログラミングが楽になるので、ぜひ使ってみて下さい。

まとめ

ラムダ式への理解が深まりましたか?

ラムダ式はおおむね関数で代替できるため、プログラミングをする上で必須の知識ではありませんが、コードをよりシンプルにすることができます。
近年、関数型プログラミングは注目を集めているので、ぜひとも使いこなせるようになるべきでしょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る