Python lambda(匿名関数)
Python はlambdalambda を使用して匿名関数を作成します。
lambda 関数は、小型で匿名のインライン関数であり、任意の数のパラメータを持つことができますが、式は1つだけです。
匿名関数はdefdef キーワードを使用して完全な関数を定義する必要はありません。
lambda 関数は通常、シンプルな1行の関数を記述するために使用され、通常は関数を引数として渡す必要がある場合に、例えば map()、filter()、reduce() などの関数内で使用されます。
lambda 関数の特徴:
- lambda 関数は匿名であり、関数名を持たず、変数に代入するか、他の関数に引数として渡すことによってのみ使用できます。
- lambda 関数は通常1行のコードのみを含み、そのため簡単な関数の作成に適しています。
lambda の構文形式:
lambda arguments: expression
lambdalambda は Python のキーワードであり、lambda 関数を定義するために使用されます。argumentsarguments はパラメータリストであり、0個以上のパラメータを含めることができますが、コロン(::)の前に指定する必要があります。expressionexpression は式であり、関数の結果を計算して返すために使用されます。
以下の lambda 関数にはパラメータがありません:
例
出力結果は以下のとおりです:
Hello, world!
以下の例では、lambda を使用して匿名関数を作成し、関数パラメータ a を設定し、関数はパラメータ a に 10 を加算して結果を返します:
例
出力結果は以下のとおりです:
15
lambda 関数は複数のパラメータを設定することもでき、パラメータはカンマ,で区切ります:
以下の例では、lambda を使用して匿名関数を作成し、関数パラメータ a と b を乗算して結果を返します:
例
出力結果は以下のとおりです:
30
以下の例では、lambda を使用して匿名関数を作成し、関数パラメータ a、b、c を加算して結果を返します:
例
出力結果は以下のとおりです:
13
lambda 関数は通常、map()、filter()、reduce() などの組み込み関数と一緒に使用され、コレクションに対して操作を実行します。例えば:
例
出力結果は以下のとおりです:
[1, 4, 9, 16, 25]
lambda 関数を filter() と一緒に使用して偶数を抽出します:
例
出力結果は以下のとおりです:
[2, 4, 6, 8]
以下は、reduce() と lambda 式を使用して、シーケンスの累積積を計算する方法を示す例です:
例
出力結果は以下のとおりです:
120
上記の例では、reduce() 関数は numbers リストを反復処理し、lambda 関数を使用して累積結果を更新し続け、最終的に1 * 2 * 3 * 4 * 5 = 120120 という結果を得ました。
その他の拡張