Pythonでは、lambdaオペレータを使うと名前のない関数、つまり匿名関数(anonymous function)を定義することができる。
例えば、
>>> myFunc=lambda x: x*x << のように定義された関数は、次のdefオペレータを使った場合と同じ関数となる。 >> >>> def myFunc(x) return x*x
これだけでは、匿名関数の有難さが無いが、sorted関数などの他の関数と組み合わせることにより、その力を発揮する。
例えば、sorted関数のkeyパラメータに、ソート対象の値を出力するlambda関数を設定することができる。
>>> nums=[5,4,1,3,2] >>> sorted(range(len(nums)),key=lambda x:nums[x]) [2, 4, 3, 1, 0]
これは、lambda関数により、各インデックスに対応するnumsの値を出力することにより、numsのインデックスを値でソートすることに対応している。
同様に、max関数とlambdaオペレータを組み合わせることにより、最大の値を取るインデックスを求めることができる。
>>> nums=[5,4,1,3,2] >>> max(range(len(nums)),key=lambda x:nums[x]) 0