例:
あなたが正常な機能を定義する場合、通常は書かれて:
DEF:DS(X): リターン2 * X + 1
その呼び出し:
DS(5)
それがそのようにラムダ関数で書かれている場合、一つの文章で:
G =ラムダX 2 * X + 1
コール:
G =(5)
そのような点で、匿名関数を定義式としてラムダは、Xは、本体/計算式の右辺の関数として左結腸入口パラメータ、X + 1です。どこに書き込み関数定義のラムダ簡略化した形。コードはよりコンパクトが、関数の定義のより直感的な方法で、理解しやすいです。
2、Pythonは、使用、フィルタ、マップのいくつかのグローバル関数定義されやすさが低減があります。
functoolsから減らすインポート
FOO = [2、18、9、22、17、24、8、12、27]
プリント(リスト(フィルタ(ラムダX:X%3 == 0、FOO)))
[18、9、24、12、27]
プリント(リスト(マップ(ラムダX:X * 2 + 10、FOO)))
[14、46、28、54、44、58、26、34、64]
プリント(減らす(ラムダX、Y、X + Y、FOO))
139
マップ上の例での役割は非常に単純明快です。しかし、Pythonのラムダは、シンプルさ、それの程度を達成するために使用する必要がありますか?オブジェクトトラバーサル処理では、実際にはPythonの構文for..in..if非常に強力で、かつラムダよりも良いで読みやすいです。
そのようなマップの例は、上記のように書くことができる:印刷([FOOでのxのX * 2 + 10])は、非常に単純な理解が容易です。
フィルタの例は、のように書くことができる:印刷([FOOにおけるxのX X%3 == 0の場合])は、また分かりやすくのラムダ比です。