Python 高阶函数

高阶函数

    什么是高阶函数?将函数作为参数传入,这样的函数称之为高阶函数。

    变量可以指向函数,函数的参数可以接收变量,也就是说一个函数可以接收另一个函数作为参数,这种函数称之为高阶函数,如下图所示:

def fun1(a, b, fun):
    return fun(a)*fun(b)


print(fun1(-5, 2, abs))

   或者一个函数的返回值是为另外一个函数(若返回值为函数本身则是递归),这种也称之为高阶函数,如下图所示

def car():
    print('this is the car....')

def fun2(fun):
    print('this is in fun.....')
    return fun

res = fun2(car)
res()

Python 内置的高级函数

  • 高阶函数-map

        map(fun, lst), 将传入的函数变量fun作用到lst变量的每个元素中,并将结果组成新的列表返回。其返回值是一个迭代器对象。

lst1 = [5, 9, 1, 6, 7, 2]
def cube(x):
    # 求立方
    return x*x*x

print(list(map(cube, lst1)))  # [125, 729, 1, 216, 343, 8]

lst2 = [2,4]
def add(x, y):
    return x+y

# map 也可以接收多个list,可用两个列表的对应索引数据进行操作
print(list(map(add,lst1,lst2)))  # [7, 13]

  • 高阶函数-reduce

        reduce(func(x,y),lst) 把一个函数作用在一个序列上,这个函数必须接收两个参数。每次func计算的结果继续和序列的下一个元素做累积计算。

from functools import reduce
lst1 = [2, 6, 4, 1, 7]

def fun(x,y):
    return x + y

print(reduce(fun, lst1))  

  • 高阶函数-filter

        filter(func, lst) 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

lst1 = [2, 6, 4, 1, 7]
def fun1(x):
    return x%2 == 0

print(list(filter(fun1, lst1))) # 过滤掉列表中非偶数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值