1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

python高阶函数使用方法实例

Python高阶函数详解

本文将详细介绍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) # 输出
print(list(a)) # 输出[2, 5, 8]

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