Pythonで無名関数
高階関数は、パラメータとしての機能を受け取ることができ、時々、私たちは、明示的に、より便利に無名関数に直接関数を定義する必要はありません。
Pythonでは、匿名関数には、限定的なサポートを提供します。またはマップ()関数に、例えば、Fを計算する(X)= X 2 、定義に加え直接匿名関数にも外側の関数f(x)を、および:
1 >>>マップ(ラムダ X:X * X [1、5 ,. 6 ,. 7 ,. 8 ,. 9 2 ,. 3 ,. 4 ,.。]) #ラムダは、XはX Xにより定義される関数であり、*は直接到来関数 2 [1、4、9、16、25、36、49、64、81]
X * xの事実:それは無名関数のラムダXを比較して見ることができるように。
1つの デフF(X): 2 リターン X * X
キーワードラムダは、無名関数を表し、大腸の前に、 xは関数パラメータです。
匿名関数は制限があり、それが唯一の表現で、戻り値は、式の結果であり、リターンを書いていません。
無名関数の使用は、あなたが直接、関数オブジェクトを作成し、多くの時間はあなたがコードを簡素化することができ、関数名を定義することはできません。
タスク
次のコードを簡素化するために無名関数を使用することにより:
DEF(S)IS_NOT_EMPTY: リターンSとlen(s.strip())> 0 フィルタ(IS_NOT_EMPTY、[ 'テスト'、なし、 ''、 'STR'、 ''、 'END'])
1つの 印刷フィルタ(ラムダ S:S と LEN(s.strip())> 0、[ ' テスト'、なし、'' 、' STR '、' '、' END ' ])