🎉
Pythonの初心者レッスンーーPython匿名関数(lambda)
シーリズの目次
Pythonの初心者レッスンをここにまとめています。
Pythonにおける匿名関数(anonymous function)は、名前を持たない関数のことです。通常の関数定義と異なり、lambdaキーワードを使って一行で定義されます。
匿名関数の基本構文
lambda 引数1, 引数2, ... : 式
この構文では、lambdaの後に引数を指定し、コロンの後に式を記述します。式の結果が匿名関数の戻り値となります。
匿名関数の特徴
- 名前を持たない: 通常の関数定義では、defキーワードを使用して関数に名前を付けますが、lambda関数では名前がありません。
- 簡潔さ: 一行で表現されるため、簡単で短い関数を定義するのに便利です。
- 即時実行に便利: 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