什么是高阶函数?
高阶函数是指可以把函数以参数形式去传递的一种函数。
以下就是一个高阶函数的例子: 把函数作为参数的形式存在。
def add(x,y,f):
return f(x)+f(y)
print add(-2,3,abs)#这时候abs直接赋值给了f参数,而abs本身就是一个函数
匿名函数:一般return只有一个表达式的函数可以通过匿名函数来完成。匿名函数顾名思义,就是可以不用写函数名字。例如:
def add(x,y): 等同于: lambda x,y:x+y
return x+y
若我们需要使用 lambda x,y:x+y 可以给它一个变量名。 a=lambda x,y:x+y 调用函数直接写 print a(1,2) 则会打印3
接下来看看map/reduce/filter的区别:
#coding:utf-8
a = map(lambda x:x*x,range(1,10)) #可以把1-10,不包括10的值进行相乘。
print a
b = map(str,range(1,10)) #把原本生成的列表中的整型变为字符串类型
print b
#reduce可以理解为 reduce(f,[x1,x2,x3,x4])=f(f(f(x1,x2,),x3)x4)
c = reduce(lambda x,y:x*10+y,range(1,5))
print c
#filter()是python内建的过滤序列函数
d = filter(lambda x:x%2==1,range(1,10)) #过滤10以内的偶数
print d
a=lambda x,y:x+y
print a(1,2)
打印结果为: