學習筆記(11月02日)--高階函數
阿新 • • 發佈:2017-11-02
學習筆記 python培訓
三周四次課(11月2日)
1.高階函數
高級函數就是把函數當成參數傳遞的一種函數:例如:
def add(x, y, f): return f(x) + f(y) print(add(-8, 11, abs))
結果:
19
解釋:
1,調用add函數,分別執行abs(-8)和abs(11),分別計算出他們的值
2,最後再做和運算
map()函數
map函數是python內置的一個高階函數,它接收一個函數f和一個list,並把list的元素依次傳遞給函數f,然後返回一個函數f處理完所有list元素的列表
例子:
def f2(x): return x * x l = [1, 2, 3, 4, 5, 6] print(map(f2, l))
結果:
[1, 4, 9, 16, 25, 36]
解釋:
1,l是一個list,把此list的元素傳入函數f2,求每個元素的平方。
2,把最終所有的計算結果合並成一個新的list,就如新的結果所示。
reduce()函數
reduce()函數也是python內置的一個高階函數。reduce()函數接收的參數和map()類似,一個函數f,一個list,但行為和map()不同,reduce()傳入的函數f必須接收兩個參數,第一個調用是把list的前兩個元素傳遞給f,第二次調用時,就是把前面兩個list元素的計算結果當成第一個參數,list的第三個元素當成第二個參數,傳入f進行操作,以後以此類推,並返回最終結果值。
例子:
def f(x, y): return x + y print(reduce(f, [1, 2, 3, 4, 5], 10))
結果:
25
解釋:
1,計算a = f(1,2)的值為3
2,計算b = f(a,3)的值為6
3,計算c = f(b,4)的值為10
4,計算d = f(c,5)的值為15
5,計算f(d,10)的值為25
其實就相當於1+2+3+4+10,最後的10是一個默認值,即最終在執行一次。
2.匿名函數
學習筆記(11月02日)--高階函數