高階函數是把函數當成參數傳遞的一種函數。
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
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)