【Python】lambda(ラムダ式)を1分で分かりやすく

Python

Pythonにおけるコーディング手法の1つ「ラムダ式(lambda)」について3分で端的に解説します。

ラムダ式(lambda)を理解するために必要な関数(def文)の知識など前提となる知識も本ページでサクッと解説していきますので、初心者の方も是非最後までご覧ください。

このページで学べる内容
  • 前提:関数(def)とは?
  • ラムダ式(lambda)とは?
  • ラムダ式を利用する場合と通常通り(def文)に記載する場合の違い
  • ラムダ式を利用したサンプルコード

それでは、早速解説を始めます。

Python:ラムダ(lambda)式とは?

簡単に言うと、ラムダ式(lambda)は関数を短く書けるようにした仕組みです。

つまり、ラムダ式が何者であるか?を理解するためには、関数とは何者か?を押さえておく必要があります。

この章では、初心者の方向けにPythonにおける関数の基本を簡単に解説しておきます。

【復習】関数とは?

関数とは何か?を理解している方はこの章は読み飛ばしてください。

関数とは、一言で言えば「複数の処理を1つにまとめて名前を付けたもの」。 処理を予め構造化(定義)しておき、あとから呼び出す形で利用するイメージのものです。

プログラムをコーディングしていくと、同じような処理を複数回必要とする場合がでてきます。このようなタイミングで、当該処理を予め構造化しておいて、何度も呼び出す形で利用することができればコード全体の「構造化」と「効率化」を向上させることが可能です。

実際のコードはこちら。

def func1 ():
    print("初めての関数")

func1()  # 関数の実行


# 結果 ⇒ 初めての関数

関数について、より丁寧に理解したい方はこちらの記事も合わせてご覧ください。

Python:ラムダ(lambda)式の使い方を分かりやすく

ラムダ式は、関数を短く書けるようにした仕組みです。

基本的な構文は以下の通り。

ラムダ式:構文ルール
lambda 引数:処理

"lambda"に続けて、引数と処理内容を記載するだけ

以下と全く同じことです。ラムダ式で記述すれば関数名が不要になります。

def 関数名(引数):
    return 返り値

引数や、戻り値の考え方は関数(def)文と全く同じです。

これだけではラムダ式のイメージが全くわかないと思うので、サンプルコードを見ながら頭を整理していきましょう。

まずは、通常のdef文―。ラムダ式を用いない場合の関数をコーディングします。

def add_func(a, b):
    return a + b

このコードをラムダ式で書きます。

lambda a,b : a+b

すっきり1行で記述することができました。

ラムダ式では、関数名をわざわざ付与しなくても良いため、かなり見た目がすっきりします。

ラムダ式の引数に値を渡す方法

ラムダ式の引数に値を渡すためには、以下のように記述します。

(lambda a,b : a+b)(2,9)

# (lambda 引数:処理)(値)

つまり、通常の書き方であれば

# 関数の定義
def add_func(a, b):
    return a + b

# 関数の実行
a = add_func(2,9)

# 値の表示
print(a)

というように記述するところ、ラムダ式であれば

# 関数の定義・実行
a = (lambda a,b : a+b)(2,9)

# 値の表示
print(a)

というように、こちらもすっきり記述することが可能になります。

引数がない場合のラムダ式

引数がない場合も、当然ラムダ式を利用することは可能です。

(lambda: print("HelloWorld"))()

# (lambda:処理内容)()でOK。

ラムダ式(lambda)の使いどころ

で、結局このラムダ式の何が良いかという話です。

ラムダ式では、わざわざ関数名を考えなくて済むという利点が1つ。そして、処理の定義と実行が1文で書けるという利点があります。

この利点が生かせるのは、以下のような場合。

ラムダ式の使いどころ
  • 何度も呼び出すような関数ではないとき
  • 関数として定義するほど、複雑な処理ではないとき
  • スッキリとしたコードにして可読性を挙げたいとき

Pythonのコーディング規約によれば、名前を付けたい場合はdef文を用い、名前を付ける必要がない場合はlambdaを使うことを推奨していますが、結局分解すると上記3つに場合と同じです。

ラムダ式は初心者の方にとっては、少し難しいように感じるかもしれませんが、使いこなせるようになればメリットも多い書き方です。

是非、この機会にマスターしておきましょう。

Pythonを1から学習したい方は

Pythonをより実践的に学びたい―。実際にコーディングをしながら学びたい―。独学に限界を感じている―。

そんな方には、無料体験/オンライン完結もあるプログラミングスクールで学ぶのがおすすめです。都度検索しながら知識を補完していくのではなく、1から体系立てて学ぶことで短時間・かつ効率的にスキルハックすることが可能です。

各プログラミングスクールの特徴をまとめた記事をこちらに記載しておきますので、是非ご覧ください。

タイトルとURLをコピーしました