Python高阶函数详解
本文将详细介绍Python高阶函数的使用方法和实例,希望对大家有所帮助。

高阶函数
在Python中,函数名可以作为自变量,因为函数名本身就是偏向函数的自变量。函数的自变量可以接受自变量,所以任何一个函数公式可以接受一个函数作为参数,这样的函数公式就是高阶函数。函数名可以作为传参,也可以作为主要参数,如下所示:
def method(a,b):
return a+b
a = method
print(a(1,4)) # 输出5
def fun(a):
return a*a
def fun1(a,b,c):
return a(b)+a(c)
print(fun1(fun(),1,5)) # fun()作为参数,传给fun1,输出26
def fun(a):
def fun2(b):
return a*b
return fun2()
a = fun(1)
print(a) # 外部函数返回的是一个函数对象,也就是一个变量,然后作为函数对象传参,获得内部函数的返回值
print(a(3)) # 输出6
常用的高阶函数
常用的高阶函数包括map、filter和reduce。
首先介绍lambda匿名函数表达式,语法格式为lambda [形参1,形参2,…:表达式],表达式执行后,返回冒号后的结果:
x = 1
lambda x: x + 3
(1)map(function,iterable)
它的第一个参数是函数名或lambda匿名函数表达式,第二个参数是可迭代对象。在Python2.x中返回列表,在Python3.x中返回迭代器。
array = [1, 4, 7]
a = map(lambda x:x+1, array)
print(a) # 输出
map函数的作用是对可迭代对象的每个元素进行函数操作,然后将元素操作后所组成的可迭代对象返回。
(2)filter(function,iterable)
它的第一个参数是函数名或lambda匿名函数表达式,第二个参数是可迭代对象。filter函数将可迭代对象的元素带入函数,返回True的对象,一般用于筛选使用,省略for循环:
array = [1, 4, 7]
a = filter(lambda x:x+1, array)
print(a) # 输出
print(list(a)) # 输出[1, 4, 7]
array = [1, 4, 7]
a = filter(lambda x:x%2==0, array)
print(a) # 输出
print(list(a)) # 输出[4]
(3)reduce(function,iterable)
它的第一个参数是函数名或lambda匿名函数表达式,第二个参数是可迭代对象。reduce函数将前两个元素进行函数运算,然后将结果作为一个元素与第三个元素进行运算,直到结束返回最终结果。
from functools import reduce
array = [1, 2, 3, 4, 5]
result = reduce(lambda x,y:x+y, array)
print(result) # 输出15,即1+2+3+4+5=15
综上所述,以上就是Python高阶函数的详细使用方法和实例,希望可以对大家有所帮助。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6626.html
