MENU

【Python基礎】ラムダ関数についてわかりやすく解説

  • URLをコピーしました!

ラムダ関数を使用しない場合と、使用する場合で

どのくらいコードに違いがあるのか、

実際にコードを比較しながら紹介していきます。

目次

ラムダ関数とは

ラムダ関数とは、関数を簡潔に書く手段です。

特徴は、以下の通りです。

  • 関数定義を短縮
  • 無名関数
  • 即時に実行

詳しく説明していきますが、その前にコードを見たほうが

イメージが付きやすと思うので、コードから紹介します。

以下は、引数のnumが偶数か奇数かを返してくれる関数です。

ラムダ関数を使用しない場合と使用した場合で、2通り用意しました。

# ラムダ関数を使用しない場合
def check_even(num):
    if num % 2 == 0:
        return "Even"
    else:
        return "Odd"
# ラムダ関数を使用した場合
check_even = lambda num: "Even" if num % 2 == 0 else "Odd"

ラムダ関数の特徴① 関数定義を短縮

記で紹介したラムダ関数を使用した場合と使用しない場合のコードをみてください。

ラムダ関数を使用しない場合は、check_even関数を定義するのに、5行使用しています。

一方で、ラムダ関数を使用した場合は、check_even関数を定義するのに、1行で済んでいます。

この関数を短く定義する手法が、ラムダ関数の1つ目の特徴です。

ラムダ関数の特徴② 無名関数

ラムダ関数は、無名関数とも呼ばれます。

通常の関数は、関数を定義する際、関数名が必要になります。

ラムダ関数は、関数でありながら、関数名が必要ありません。

実際のコードを使って説明します。

以下は、引数xyの2つの数字を足した結果を返す関数を

ラムダ関数を使用した場合としなかった場合のコードです。

# ラムダ関数を使用しない場合
def add(x, y):
    return x + y

# ラムダ関数を使用した場合
lambda x, y: x + y

ラムダ関数を使用しない場合は、関数名addで定義していますが、

ラムダ関数を使用した場合は、何も関数名を定義していません。

このような関数名なしで、関数を定義できることもラムダ関数の特徴です。

ラムダ関数の特徴③ 即時に実行

ラムダ関数は、即時実行が可能です。

普通の関数は、関数を実行するまでに以下の2ステップが必要になります。

  1. 関数を定義
  2. 定義した関数を呼ぶ

ラムダ関数はこれら2つのステップを同時に実行できるのです。

これがラムダ関数の3つ目の特徴です。

ラムダ関数は、どう使っていくのでしょうか

詳しく紹介していきます。

ラムダ関数の使い方

ラムダ関数の使い方は以下の通りです。

lambda 引数: 処理

lambdaのあとに引数:のあとに結果を返す処理を記載します。

ラムダ関数でif文を使う

ラムダ関数は、if文を使って、条件分岐も可能です。

使い方は以下の通りです。

lambda 引数: 条件が真の場合の処理 if 条件式 else 条件が負の場合の処理

実際のコードも紹介します。

引数がborder変数の値よりも大きい場合にTrueを返し、小さい場合にFalseを返す関数を、

ラムダ関数で作成しています。

border = 5
check_border = lambda x: "True" if x >= border else "False"
check_border(8)

まとめ

ラムダ関数は、あるデータに対して、簡単な処理を加えたい場合によく使用します。

ラムダ関数を理解して、短く、わかりやすいスマートなコードを書いていきましょう!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

エンジニア。20代。組み込みエンジニアとして働き始めるも、働き方や業務内容に限界を感じ、 AI,Web3エンジニアを目指して勉強中。 エンジニアとして思うことや、学んだことを発信します。

目次