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高階函式---filter---map---reduceJavaScript函式Filter
- JavaScript(1)高階函式filter、map、reduceJavaScript函式Filter
- python常用函式進階(2)之map,filter,reduce,zipPython函式Filter
- 理解Swift高階函式之map, filter, reduceSwift函式Filter
- Python 擴充之特殊函式(lambda 函式,map 函式,filter 函式,reduce 函式)Python函式Filter
- Array高階函式reduce&filter函式Filter
- python內建函式 map/reducePython函式
- 陣列的 map, filter ,sort和 reduce 用法陣列Filter
- python-python的sao操作 map reduce filterPythonFilter
- Python 進階之路 (五) map, filter, reduce, zip 一網打盡PythonFilter
- JavaScript 4/30: 陣列的 map, filter 和 reduce 用法JavaScript陣列Filter
- Python學習筆記 - filter,map,reduce,zipPython筆記Filter
- Python中的Map、Reduce和Filter函數語言程式設計PythonFilter函數程式設計
- Stream之高階函式函式
- Python3之三個內建高階函式map、filter、sortedPython函式Filter
- python中快速處理關鍵字map,reduce,filterPythonFilter
- 學習javaScript必知必會(3)~陣列(陣列建立,for...in遍歷,輔助函式,高階函式filter、map、reduce)JavaScript陣列函式Filter
- kotlin之plus、copyOf、reverse、forEach、filter、map、reduce、fold等函式解釋和使用KotlinFilter函式
- map、reduce、filter、for...of、for...in等總結Filter
- python filter函式PythonFilter函式
- php array_filter() 函式的用法PHPFilter函式
- 函式進階· 第3篇《常用內建函式filter()、map()、zip(),怎麼用的呢?》函式Filter
- lambda匿名函式sorted排序函式filter過濾函式map對映函式函式排序Filter
- Python函式裝飾器高階用法Python函式
- [譯] 圖解 Map、Reduce 和 Filter 陣列方法圖解Filter陣列
- Python中常用的幾個內建方法(max()/min()、filter()、map()、sorted、reduce())PythonFilter
- python_map()函式Python函式
- reduce實現filter,map 陣列扁平化等Filter陣列
- 陣列的forEach,map,filter,reduce,reduceRight,every,some方法陣列Filter
- python入門與進階篇(六)之高階語法及用法Python
- Kotlin 之高階函式與Lambda表示式與閉包Kotlin函式
- Python技法2:函式引數的進階用法Python函式
- 【Python】python map()函式和lambda表示式Python函式
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- Python巢狀定義函式增強reduce()函式功能Python巢狀函式
- 分散式計算與Map Reduce分散式
- Python 函式進階-高階函式Python函式
- Python排序函式用法Python排序函式