lambda可以理解為一種小函數,但是它是一個表達式,而不是一個語句,所以在def不允許出現的地方仍然可以使用lambda函數,例如list里。但是lambda內只可以執行一個表達式。
def f(x): return x**2 print f(3) a = lambda x: x**2 print a(3) a = lambda x,y: x+y print a(1,2) ~
一個lambda語句就相當于一個函數定義,調用的時候也和函數一樣。
map函數
有時候我們可以需要處理一個列表里的所有元素,可以使用一個for循環來完成這個工作。但是Python內置的map函數可以幫我們的忙,它接受函數和列表作為參數,然后返回函數處理之后的列表:
map函數有的時候可以用來替代循環,
它比for循環的效率更高,原因是它是直接對應的c語言里的循環。
def add1(a): return a + 1 def add2(a, b): return a + b def add3(a, b, c): return a + b + c a1 = [1,2,3,4,5] a2 = [1,2,3,4,5] a3 = [1,2,3,4,5] b = map(add1, a1) print b b = map(add2, a1, a2) print b b = map(add3, a1, a2, a3) print b
filter函數,是用來過濾列表的。簡單的說就是用一個函數來過濾一個列表,把列表的每一項傳遞進入過濾函數,過濾函數返回false就從這個列表中刪除該項。
def add1(a): if a > 2: return True return False a1 = [1,2,3,4,5] b = filter(add1, a1) print b
其實這個filter函數相當于這個:
c = [b for b in a1 if b > 2] print c
總結
以上所述是小編給大家介紹的python內置函數:lambda、map、filter,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!
新聞熱點
疑難解答