07 7月 2009

[Python] lambda簡介

Python提供了一個簡易的function define:lambda,用完即丟,不著痕跡。讓你實作出很簡單的function(只處理一個運算式)。
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在某些方面而言確實是很好用,但是也不能濫用,否則可能造成程式的可讀性降低。

沒有留言: