python學習筆記 高階函式map reduce

2021-07-24 06:08:17 字數 1357 閱讀 4615

既然變數可以指向函式,函式的引數能接收變數,那麼乙個函式就可以接收另乙個函式作為引數,這種函式就稱之為高階函式。

乙個最簡單的高階函式:

def

add(x, y, f):

return f(x) + f(y)

當我們呼叫add(-5, 6, abs)時,引數xyf分別接收-56abs

map()

>>> 

deff

(x):

...

return x * x

...>>> map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

[1, 4, 9, 16, 25, 36, 49, 64, 81]

把這個list所有數字轉為字串:

>>> map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])

['1', '2', '3', '4', '5', '6', '7', '8', '9']

reduce()

reduce把乙個函式作用在乙個序列[x1, x2, x3...]上,這個函式必須接收兩個引數,reduce把結果繼續和序列的下乙個元素做累積計算,其效果就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
如果要把序列[1, 3, 5, 7, 9]變換成整數13579,reduce就可以派上用場:

>>> 

deffn

(x, y):

...

return x * 10 + y

...>>> reduce(fn, [1, 3, 5, 7, 9])

13579

出把str轉換為int的函式:

>>> 

deffn

(x, y):

...

return x * 10 + y

...>>>

defchar2num

(s):

...

return [s]

...>>> reduce(fn, map(char2num, '13579'))

13579

Python學習筆記 高階函式

高階函式的概念是我在學習kotlin的時候才接觸到的,後來才發現很多語言都有該特性。簡單的定義為 把函式作為引數傳入另乙個函式中 例如 def add x,y,f return f x f y print add 5,6,abs 其中,abs函式作為引數傳到add函式中,add函式就可以稱為高階函式...

Python 學習筆記 5 1 高階函式

高階函式英文叫higher order function。什麼是高階函式?我們以實際 為例子,一步一步深入概念。以python內建的求絕對值的函式abs 為例,呼叫該函式用以下 abs 10 10但是,如果只寫abs呢?abs infunction abs 可見,abs 10 是函式呼叫,而abs是...

python高階學習筆記(一) 高階函式

filter filter 函式接收乙個 函式 f 和乙個list 這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter 根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。例如,要從乙個list 1,4,6,7,9,12,17 中刪除偶數,保...