python之高階函式map,reduce,filter用法
高階函式的使用能夠極大地簡化python演算法的複雜度(主要是逼格高了!!)。好了,不廢話,直接看用法。
map函式
---它是將傳入的函式依次作用到序列的每個元素上,並把結果作為新的Iterator
返回。
舉例說明:
# map函式
testList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
def square(x):
return x * x
list1 = list(map(square, testList))
print(list1)
這樣,大家就很容易看出來map的用法了吧。
哦,對了,這裡要注意的一小點問題是:在使用map進行對映的時候,傳入的函式只寫函式名square,不需要傳入引數值x。
filter函式
---從某種意義上來講,filter函式和map函式很類似,他們都是將函式作用於給定序列的每一個元素上。但是,filter和map的不同點在於哪裡呢??我們先來看下面的一個簡單的例子。
# filter
testList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
def is_odd(x):
return x % 2 == 1
list2=list(filter(is_odd,testList))
print(list2)
返回值為[1, 3, 5, 7, 9]
那麼,我們可以將filter函式的作用總結為:
filter()
把傳入的函式依次作用於給定序列的每個元素上,然後根據函式的返回值(True or
False
)決定保留還是丟棄該元素。最終輸出的是符合傳入函式的要求的值。
reduce函式
reduce函式和map,filter都不同。它每次傳入2個引數,並將這兩個引數傳入函式中。然後將得到的值作為第一個引數,再傳入一個新的引數,繼續進行下一步的運算,直至引數全部傳入過停止。
看下面的例子可能更好理解:
from functools import reduce
testList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
def add(x,y):
return 10*x+y
list3=reduce(add,testList)
print(list3)
得到的返回值為123456789。
這裡我們可以將reduce函式的功能進一步總結為:這個函式必須接收兩個引數,reduce
把結果繼續和序列的下一個元素做累積計算,直到引數全部傳入過停止。
好了,高階函式就說到這裡了,如有問題,可以留言,大家一起討論,共同進步!!
相關文章
- JavaScript(1)高階函式filter、map、reduceJavaScript函式Filter
- javascript高階函式---filter---map---reduceJavaScript函式Filter
- 理解Swift高階函式之map, filter, reduceSwift函式Filter
- python常用函式進階(2)之map,filter,reduce,zipPython函式Filter
- Python 中的map、reduce函式用法Python函式
- python基礎 python內建函式map/reduce/filterPython函式Filter
- Swift集合函式:Reduce、Map、FlatMap、FilterSwift函式Filter
- Python 擴充之特殊函式(lambda 函式,map 函式,filter 函式,reduce 函式)Python函式Filter
- Array高階函式reduce&filter函式Filter
- Python map, reduce, filter和sortedPythonFilter
- 陣列的 map, filter ,sort和 reduce 用法陣列Filter
- python內建函式 map/reducePython函式
- Python 進階之路 (五) map, filter, reduce, zip 一網打盡PythonFilter
- JavaScript 4/30: 陣列的 map, filter 和 reduce 用法JavaScript陣列Filter
- Python 特殊語法:filter、map、reduce、lambdaPythonFilter
- python 中的map,dict,lambda,reduce,filterPythonFilter
- Python 中filter函式用法PythonFilter函式
- 【譯】高階函式:利用Filter、Map和Reduce來編寫更易維護的程式碼函式Filter
- python-python的sao操作 map reduce filterPythonFilter
- Stream之高階函式函式
- Python學習筆記 - filter,map,reduce,zipPython筆記Filter
- Python中的Map、Reduce和Filter函數語言程式設計PythonFilter函數程式設計
- Python中map filter reduce的遞迴實現PythonFilter遞迴
- Python3之三個內建高階函式map、filter、sortedPython函式Filter
- 學習javaScript必知必會(3)~陣列(陣列建立,for...in遍歷,輔助函式,高階函式filter、map、reduce)JavaScript陣列函式Filter
- python中快速處理關鍵字map,reduce,filterPythonFilter
- map、reduce、filter、for...of、for...in等總結Filter
- [PY3]——對iterator的處理(解析式、map、reduce、filter)Filter
- Python自動化運維之高階函式薦Python運維函式
- lambda map filter reduce zip 以及列表推導Filter
- kotlin之plus、copyOf、reverse、forEach、filter、map、reduce、fold等函式解釋和使用KotlinFilter函式
- python filter函式PythonFilter函式
- 函式進階· 第3篇《常用內建函式filter()、map()、zip(),怎麼用的呢?》函式Filter
- [譯] 圖解 Map、Reduce 和 Filter 陣列方法圖解Filter陣列
- es6 map、foreach、reduce、 filter 詳解Filter
- lambda匿名函式sorted排序函式filter過濾函式map對映函式函式排序Filter
- Python函數語言程式設計-map/reducePython函數程式設計
- php array_filter() 函式的用法PHPFilter函式