apply函數:
apply可以將參數和調用的函數都以參數形式來執行。如果參數不止一個,可以用元組方式傳入,但是調用的函數必須是一個。
例:
def func (x,y):return x+y
apply(func (2,3))
輸出:5
lambda形式:
f=lambda x,y:x+y
apply(f,(3,4))
輸出: 7
在序列中映射函數:map
c=[1,2,3,4]
def inc(x):
return x+10
map(inc,c)
輸出:[11,12,13,14]
#輸出的值,並非是c的值,因爲這裏並沒有對c賦值
map((lambda x:x+10),c)
輸出:[11,12,13,14] #同上
函數式編程工具:filter 和reduce
所謂函數式編程是指對序列應用一些函數工具,map就是最簡單最基本的函數式編程工具 。
filter 其英文意思是過濾,所以函數的功能也是過濾一些我們需要的元素。
l=range(-5,5)
filter((lambda x : x>0),l)
輸出:[1,2,3,4]
#reduce:
rex=[1,2,3,4]
reduce((lambda x,y:x+y),rex)
輸出:10
reduce((lambda x,y:x*y),rex)
輸出:24
#ruduce的運行機制相當於:
rex=[1,2,3,4]
i=rex[0]
for x in rex[1:]:
i=i+x
print i
輸出:10