Python

【Python】ラムダ式の使い方【匿名関数】

この記事では、Python のラムダ式の使い方を解説します。

ラムダ式を使うことでその場限りでしか使わないような簡単な関数を 1行で表現することができます。ラムダは、関数オブジェクトが要求される箇所になら使用可能です。

なので、引数に関数の参照を取る関数(高階関数)と組み合わせてよく使用されます。

ラムダ式とは?

ラムダ式とは 一度しか使わないような単純な処理を関数を使わずに定義できる機能 で、関数オブジェクトを要求する箇所に指定することができます。

ラムダ式の特徴
  • 名前のない簡単な関数を生成できる
  • 関数オブジェクトを要求する場所ならどこでも使える
  • 単一の式のみ使える

ラムダ式は 「匿名関数」や「無名関数」とも呼ばれています。

ラムダ式の使い方

ラムダ式は lambdaキーワード を使って定義します。

lambda 引数名: 戻り値

引数は、複数定義することができます。

lambda 引数名1, 引数名2: 戻り値

サンプル

以下のような関数があったとして、

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

この関数と同じ処理をラムダ式で実装すると、以下のようになります。

lambda a, b: a + b

実際に関数を呼び出して結果を比較してみます。

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

# 関数
print(func(1, 2))  # 3

# ラムダ式
print((lambda a, b: a + b)(1, 2))  # 3

同じ値が出力されました。

高階関数にラムダ式を使う

引数に渡された値が 0以上ならば何かしらの処理を実行する関数があったとします。

def func(num):
    if num >= 0:
        print('実行')

しかし、状況によって条件を変更したいなと思った時に、関数の参照を引数にとってやることで呼び出し時に条件を変更することができます。

def func(f, num):
    if f(num):
        print('実行')

このように、関数の参照を引数で受け取ったり、戻り値として返したりする関数のことを「高階関数」と呼びます。

高階関数を使用する際にラムダ式を使うことでめちゃんこ便利です。例えば、先ほどの func()関数 を呼び出す際にラムダ式を使うことで無駄な関数を定義しなくて済む。

func(lambda a: a > 5, 6)

高階関数とラムダ式はよく組み合わせて使用されます。高階関数の使い方は以下の記事で紹介しているので気になる方は参照してください。

リストの全要素になにかしらの処理を実行する方法

まとめ

この記事では、Python のラムダ式について解説しました。

ラムダ式を使うと複数回使わない単純な処理の関数を定義しなくて済みます。また、高階関数と組み合わせることで非常に便利な処理を実装することができます。

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ