首頁 >後端開發 >Python教學 >Python map、filter,reduce介紹

Python map、filter,reduce介紹

巴扎黑
巴扎黑原創
2016-12-09 11:49:501363瀏覽

1、filter(function,iterable) 

引用

根據函數傳回 true 的 iterable 元素建構一個列表。 iterable 可以是序列、支援迭代的容器或迭代器。如果 iterable 是字串或元組,則結果也具有該類型;否則它始終是清單。如果 function 為 None,則假定為恆等函數,即移除 iterable 中所有為 false 的元素。 


注意,如果 function 不是 None,filter(function, iterable) 相當於 [item for item in iterable if function(item)] ,而 [item for item in iterable if item]if function 是 None 。

示範: 

Python程式碼  

#-*-coding:utf-8-*-  

def foo(): 🠎🠎🠎🠎ࠟ)8885,0707575757207207)(o):0057205)():10525297572975207)():10529757207)():1052075)(7);  

def bar():  

    返回[x for x in range(0,10) if x > 5]  

print foo() == bar()  

print foo() == bar()  

print foo() == bar()  

print foo() == bar()  

引用

將function 應用於iterable 的每個項目並傳回結果清單。如果傳遞額外的可迭代參數,則函數必須採用這麼多參數,並並行應用於所有可迭代的項。如果一個迭代比另一個短,則假定使用 None 項目進行擴展。如果 function 為 None,則假定恆等函數;如果有多個參數,map() 傳回一個由元組組成的列表,其中包含所有可迭代物件中的對應項(一種轉置操作)。可迭代參數可以是序列或任何可迭代物件;結果始終是一個列表。

示範: 

Python代碼  

#-*-coding:utf-8-*-  

 (add, range(8 ),range(8))  

3、reduce(function,iterable[,initalizer]) 


3、reduce(function,iterable[,initalizer]) 

引用

將兩個參數的函數從左到右累加地應用於iterable 的項對,從而將iterable減少為單一值。例如,reduce(lambdax, y: x+y, [1, 2, 3, 4, 5]) 計算 ((((1+2)+3)+4)+5)。左側參數 x 是累積值,右側參數 y 是可迭代的更新值。如果存在可選初始值設定項,則在計算中將其放置在可迭代項之前,並在可迭代為空時充當預設值。如果未給出初始值設定項且 iterable 僅包含一項,則傳回第一項。大致相當於:


示範:

Python程式碼  

#-*-coding:utf-8-*-  
def foo():  
    return reduce(lambda x,y:x*y,range(1,5))  
print foo()


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn