🎉

Pythonの初心者レッスンーーPython匿名関数(lambda)

2024/06/23に公開

シーリズの目次

Pythonの初心者レッスンをここにまとめています。
https://zenn.dev/datasciencekun/articles/319e0f4b4021c5

Pythonにおける匿名関数(anonymous function)は、名前を持たない関数のことです。通常の関数定義と異なり、lambdaキーワードを使って一行で定義されます。

匿名関数の基本構文

lambda 引数1, 引数2, ... :

この構文では、lambdaの後に引数を指定し、コロンの後に式を記述します。式の結果が匿名関数の戻り値となります。

匿名関数の特徴

  1. 名前を持たない: 通常の関数定義では、defキーワードを使用して関数に名前を付けますが、lambda関数では名前がありません。
  2. 簡潔さ: 一行で表現されるため、簡単で短い関数を定義するのに便利です。
  3. 即時実行に便利: lambda関数は、定義した時点で直ちに使用することができます。

匿名関数の使用

例1: 単純な加算関数

add = lambda x, y: x + y
print(add(3, 5))  # 出力: 8

この例では、lambdaを使って引数 x と y を受け取り、それらを加算しています。
例2: map関数と組み合わせる

numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared)  # 出力: [1, 4, 9, 16, 25]

この例では、リスト numbers の各要素を2乗するlambda関数を map 関数に渡しています。
例3: filter関数と組み合わせる

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 出力: [2, 4, 6, 8, 10]

この例では、リスト numbers から偶数だけを抽出するlambda関数を filter 関数に渡しています。

注意点

  • 簡潔さと可読性: lambda関数は簡単な処理を行う場合に有用ですが、複雑な処理や複数行のコードを含む関数は通常の def を使用した方が可読性が高くなります。
  • 名前の欠如: lambda関数は名前を持たないため、デバッグ時に関数の内容を特定するのが難しい場合があります。特に複雑なロジックや再利用性の高い関数を定義する場合は、通常の関数定義を検討するべきです。

Discussion