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)