https://www.sejuku.net/blog/wp-content/themes/voice_child/images/samurai_logo.png 侍エンジニア塾が運営するプログラミング入門者向け学習情報サイト

【Python入門】lambda(ラムダ式)の使い方

桃太郎
書いた人 桃太郎


侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

こんにちは!フリーランスの桃太郎です。

Pythonにはlambda(ラムダと読みます)式という書き方があり、場面に応じて活用することで、とても便利な手法となります。

この記事では、

・lambda(ラムダ)式とは

・lambda(ラムダ)式の使い方

という基本的な内容から、

・lambda(ラムダ)式でfor文処理を実装する方法

・lambda(ラムダ)式でif文処理を実装する方法

などの応用的な使い方に関しても解説していきます。

lambda(ラムダ)式について正しく理解し、必要な場面で使いこなすことができるように、わかりやすく解説します!

lambda式とは

そもそもlambda(ラムダ)という用語について、プログラミング初学者には馴染みがあまりないかもしれません。

lambdaについて簡潔にその用語の意義とメリットをお伝えしますと以下の通りとなります。

関数を式として扱い変数に代入できるようにする手法であり、プログラムのコードを簡潔にするメリットがある。

これだけではなんとなくわかったようなわからないようなという感じかと思います。

そこで、さらに具体的なサンプルを用いてlambda式を理解できるように解説します。

lambda式の基本的な書き方

商品の価格と消費税(8%)を入れて支払い代金を計算する処理を実装するとします。

実行結果

lambda式を使用しない場合、まず価格と消費税を掛け合わせて支払い代金を計算する関数(func)を定義しています。

その後、関数(func)の引数に実際の値(100,0.08)を設定し、その結果を変数(payment1)に格納しています。

一方、lambda式を用いる場合は、defによる関数定義は登場せず、代わりにlambdaと書いて、その横に引数そして、セミコロン(:)の後に引数を使用した処理内容という形式にて書くことができます。

まずはこの基本的な書き方を覚えてください。

引数なしのlambda式の書き方

lambda式では引数を与えられて、その引数を使い処理を行い、その結果を返すことが基本です。

ですが、引数なしの処理も以下のように書くことはできます。

実行結果

lambda式の実践的な使い方

基本的な書き方を確認したところで、次はより実践的な使い方を学んでいきましょう。

lambda式でfor文処理を実装する方法

例えば、様々な商品の価格を抜き出したリストがあり、そのリスト対して、消費税を上乗せした価格情報を取得する処理を実装するとします。

その場合、商品価格のリストをfor文を使用して以下のように実装することができます。

実行結果

同じ処理内容を今度はlambda式を利用して実装します。

その際に、合わせて利用する関数がmap関数です。

map関数は第一引数に処理内容、第二引数に処理対象のリストを指定します。

実行結果

このようにlambda式とmap関数を併用することで、for文の処理を実装することが可能です。

lambda式でif文処理を実装する方法

次にfor文でリストの要素を一つ一つ処理する際に、if文の条件が入るケースについてもlambda式を活用できます。

同じく例として様々な商品の価格を抜き出したリストがあり、そのリストからある金額以上のものを抜き出し、価格の安い順に並べた情報を取得するプログラムを実装するとします。

こちらもまずはlambda式を用いない場合の実装方法の例をみていただきましょう。

実行結果

これをlambda式を用いて書くと以下のようになります。

実行結果

上記サンプルにてlambda式と合わせてlist関数filter関数を使用しました。

list関数は引数の値をlist型へ変換し、その後、sort()関数にて並び替えを行うために使用しています。

そして、filter関数は第二引数に指定された配列の各要素に対して、第一引数の関数処理を実施し、Trueとなるものだけを抽出する処理を行なっています。

これまで見ていただいたmap関数とfilter関数と合わせて活用したlambda式は、特に無名関数と呼ばれる使い方となります。

下記の通り名前がある関数(checkPrice)を使用した処理とは対照的にlambda式では関数名を定義せずに使用することができることから無名関数と呼ばれています。

実行結果

まとめ

ここでは、lambda式について、基本的な使い方から応用的な具体例についても紹介しました。

様々な箇所で共通的に使用したい処理内容であれば、通常のdefを用いた関数を活用し、使用範囲が限られる処理内容であれば、lambda式を用いて簡潔に読みやすいコードを書く事を優先することを今後は検討してみて下さい。

もし、lambda式の使い方を忘れてしまったら、この記事を思い出してくださいね!

Pythonカリキュラム無料公開中!
この記事はPython入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Python学習に必要な情報を一つにまとめていますので効率よくPythonを学ぶことが出来ます。この機会に是非活用していただければと思います。



33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


Pythonを最短で習得したい方へ
元々ITリテラシーの高い方やプログラムの学び方がわかっている方であれば、この記事通りに進めていけば、Pythonを独学で習得することができるでしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「なかなかやり遂げられ無い、挫折してしまった」
「時間が足りない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決することができない」
このような悩みを抱えている方も少なく無いと思います。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、通常のスクールでは難しい、AI(人工知能)や機械学習、IoTについて学習することできます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方やカリキュラムを考えてみませんか?

Pythonならではの学習方法や、現役Pythonエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta_bannar-ai2

非常識な結果を出した卒業生

活躍する現役エンジニア

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

桃太郎

桃太郎

20代は役者、30代はエンジニア、そして40代を迎えた現在、Webライターとして活動しながら、3人の息子たちの家庭教育、アンチエイジングなどにも力を入れて日々ノマドライフを楽しんでいます。