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