Python の lambda 式について

はじめに

Python 関連でネットサーフィンしてたら、lambda 式の記事に当たったので。

lambda の書き方

下の二つの結果は同じになる。

def func(x, y, z): return x + y + z
print func(1, 2, 3)

func = lambda x, y, z: x + y + z
print func(1, 2, 3)

lamda は関数ではないので関数名をもたない。そのため、いったん関数名に相当する変数に lambda 式の結果を代入している。

続きはこちらへ。

lambda の別の例

例えばこんなのがあったとして、

print (lambda x: x)(100)

こんな感じで、辞書オブジェクトの値として入れることができる。 switch 文っぽくするにはこんな感じで書くといい。

import sys 

switch = { 
    1:lambda x:x,
    2:lambda x:x*x,
    3:lambda x:x*x*x
    }   

print switch.get(int(sys.argv[1]), lambda x:'Infinity')(100)