7.3 高階函數
阿新 • • 發佈:2017-11-10
高階函數
高階函數是把函數當成參數傳遞的一種函數。
1、map()函數,第一個參數為自定義函數,第二個參數為一個可叠代對象
lt=(1,2,3,4,5) def f2(x): return x*x ml=map(f2,lt) print(type(ml)) print(list(ml)) # map 函數要想得到列表 得用 list() 轉換 否則得到的是 map 對象
2、reduce 函數
傳入的函數必須接受兩個參數:
把可叠代對象的前兩個參數作為參數的實參,傳入到 f 函數中
把每次 f 運算的結果作為第一個實參,可叠代對象的下一個元素作為另一個實參,傳入函數 f 中,
以此類推,最終得到結果
from functools import reduce def f(x,y): return x+y print(reduce(f,[1,2,3,4,5,],10)) # reduce 函數需引入包 # from functools import reduce
3、filter 函數
每次把可叠代對象的元素傳入進去,如果返回為 True ,則保留該元素,如果返回False,則不保留
a=[1,2,3,4,5,6] def is_odd(x): return x%2==1 b=list(filter(is_odd,a)) # 此處應該將 filter 函數轉換成 list,否則得到的是 filter 對象 print(b)
7.3 高階函數