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()