Lambda 関数は匿名関数とも呼ばれます。つまり、関数には特定の名前がありません。まず最も単純な例を見てみましょう:
ラムダ式には、多くのプログラミング言語で対応する実装があります。たとえば、C#:
振り返って考えてみると、Python のラムダは本当に役に立たないのでしょうか?実際にはいいえ、少なくとも私が思いつくのは次のとおりです:
1. Python を使用して実行スクリプトを作成する場合、ラムダを使用すると関数を定義するプロセスが省略され、コードがより合理化されます。
2. 他の場所で再利用されない一部の抽象関数の場合、ラムダを使用する場合、名前付けの問題を考慮する必要はありません。
3. 特定の場面でコードを理解しやすくするためにラムダを使用します。
Lambda の基本
ラムダ ステートメントでは、コロンの前にパラメータがあり、カンマで区切って複数のパラメータを指定することができ、コロンの右側に戻り値を指定します。ラムダ ステートメントが実際に構築するのは関数オブジェクトです:
それはラムダでなければなりませんか?
上記の例のマップの機能は、C# の Where 拡張メソッドと同じであり、非常にシンプルで便利です。しかし、Python はそのような単純さを実現するためにラムダを使用する必要があるのでしょうか?オブジェクト トラバーサル処理の観点から見ると、Python の for..in..if 構文は実際には非常に強力で、ラムダよりも読みやすいです。たとえば、上記のマップの例は次のように記述できます:
したがって、ラムダをいつ使用するのか、いつ使用しないのか、表現された意図が明確である限り、具体的な状況を分析する必要があります。一般に、for..in..if でそれができるのであれば、私はラムダを選択しません。
ラムダが壊れていますか?
数学の教育では、ラムダがよく使用されます。たとえば、ある兄弟はこのような問題に遭遇しました。彼は、関数配列 fs=[f0,...,f9] (fi(n)=i+n) を作成したいと考え、次のようなラムダ関数を定義しました。コード