lambda param1, param2, ... : expression #其實就等於 def fun( param1, param2, ... ) : return expression
其中的expression不能放assignment,也就是這一行指令不能放=等號。因為,它就這麼簡單,別把它搞複雜化嘛~
Ex:
def func(x, y, z): return x + y + z #>>> func(1, 2, 3) #>>> 6 func2 = lambda x,y,z : x+y+z #>>> func2(1, 2, 3) #>>> 6 #也可以應用在map上 my_list = [1, 2, 3] map( lambda i: i * i, my_list ) #>>> (1, 4, 9)
lambda在某些方面而言確實是很好用,但是也不能濫用,否則可能造成程式的可讀性降低。
沒有留言:
張貼留言