1.高阶函数
高阶函数就是把函数当成参数传递的函数。
例如:
def add(x,y,f): return f(x) + f(y) print add(-4,3,abs)结果是 7
map()函数
map()函数的python内置的高阶函数,他接受一个函数f 和参数list,并把list的元素传递给函数f,然后返回一个函数f处理完list元素的列表。
例如:
lt = [1,2,3,4,5] def fun1(x): return x*x ml = map(fun1,lt) print ml最终返回的结果是个列表
reduce()函数
reduce函数是python内置的高阶函数,reduce()函数接收的参数跟map()类似,一个函数f,一个list,但行为和map()不同,reduce函数传入的f必须接收2个参数,第一次调用把list的前两个元素传递给f,第二次调用时就是把前两个 元素计算结果当成第一个参数,list的第三个元素当成第二个参数,传入f进行操作,以后以此类推,直到返回最终结果。
例如:
lis = [1,2,3,4,5] def fun2(x,y): return x + y res = reduce(fun2,lis,10) print res计算结果是
25
解释:
1.a = fun2(1,2) 值为3
2.b = fun2(a,3) 值为 6
3.c = fun2(b,4) 值为 10
4.d = dun2(c,5) 值为15
5,计算 f(d,10) 结果是25、
# 传入的函数必须接收2个参数。
filter()函数
filter()函数是python内置的一个高阶函数,filter()函数接收一个函数f 跟一个list.这个函数f的作用就是对每个元素进行判断,返回true 或者false. filter()判断的结果自动过滤掉不符合条件的元素,返回由符合条件的元素组成的新的list列表
举例:
lis2 = [1,2,3,4,5,6,7,8,9,10] def fun3(x): return x % 2 == 0 rus = filter(fun3,lis2) print (rus)返回结果:
[2, 4, 6, 8, 10]
2.匿名函数
顾名思义就是没有名字的函数,lambda是一种快速定义单行的最小函数,可以用在任何需要函数的地方。
例如:
def sum(x,y): return x + y m = lambda x,y:x+y print (m(4,5)) print type(m)