lambda式

Pythonにはlambda(ラムダ)式という面白そうなものがあったので、使い方を調べてみました。
初めてのPythonより引用。

lambda式を実行すると関数を作成し、関数が式の戻り値となる。

defだと関数名に関数が入れられますが、lambdaを使うと変数に関数を入れることができます。
例えば、

sqrt = lambda x: x ** 2
print sqrt(5)

とすると、25が表示されます。
ローカル関数みたいなイメージです。
defがグローバル関数みたいな。
 
いやはや、簡易的に関数をさくっとつくれて、なかなか楽しいですね。
ところで、
なんとリストに入れることも可能です。

L = [(lambda x: x ** 2), (lambda x: x **3)]
for f in L:
  print f(2)

4
8
と出力します。
 
さらになんと!
ディクショナリに入れてしまえます。

D = {'sqrt2':(lambda x: x ** 2), 'sqrt3':(lambda x: x **3)}
print D['sqrt2'](2)
print D['sqrt3'](3)

4
27
と出ます。
アクションテーブルができてしまいますね。
素晴らしや…。