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在某些方面而言確實是很好用,但是也不能濫用,否則可能造成程式的可讀性降低。
沒有留言:
張貼留言