四大高阶函数为什么称之为高阶函数

高阶函数

  • 在Python中,变量可以指向函数
    函数名也是变量
    既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数

map()

格式:map(function,iterable,. . . )

  • 功能:将第一个参数function依次作用在参数可迭代对象中的每一个元素上,返回包含每次function函数返回值的新迭代器
  • 参数:
    function 函数,有两个参数
    iterable 一个或多个可迭代对象(如:序列)
    返回值: Python 3.x返回迭代器
    例: map_ = map(lambda x: x + x, range(10)) print(list(map_)) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

reduce()

  • 功能 功能 函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。 其效果类似:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

  • 参数

    function 函数,有两个参数
    iterable 可迭代对象
    initializer 可选,初始参数
    返回值 返回函数计算结果

    from functools import reduce 模块 格式:reduce(function,iterable[,initializer]) 接收两个参数

    • 例: from functools import reduce reduce_ = reduce(lambda x , y: x + y, range(5)) print(reduce_) # 10 (0 + 1 + 2 + 3 + 4 + 5)

filter()

格式filter(function,iterable)

  • 功能 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新迭代器对象中
    参数 iunction 判断函数 iterable 可迭代对象(如:序列)
    返回值 返回一个迭代器对象
  • 例: filter_ = filter(lambda x: x%2 == 0, range(11)) print(list(filter_)) # [0, 2, 4, 6, 8, 10]

sorted()

  • 功能:对所有可迭代对象进行排序操作
  • 参数
    iterable 可迭代对象
    key key指定的函数将作用于可迭代对象上的每一个元素,并根据key函数返回的结果进行排序
    reverse 排序规则 □ reverse = True 降序 □ reverse = False 升序(默认)
    返回值
    返回重新排序的列表
    例: sorted(iterable, key=abs, reverse=True) reveverse 倒叙,默认为false(正序) key = abs 绝对值 sorted_ = sorted([1, 10, 35, 12, 5123, 23], reverse=True) print(sorted_) # [5123, 35, 23, 12, 10, 1]

lambda

匿名函数格式:lambda 参数:表达式

  • 单个使用

    (lambda a,b:a if a>b else b)(3,4)
    实现斐波那契数列

    fib = lambda n : n if n <= 2 else fib(n-1)+fib(n-2)
    递归函数

  • 函数自身调用自身的函数

  • 递归:递归前进段,递归边界,递归返回段

  • 优点和缺点:

    • 优点:定义简单,逻辑清晰 缺点,过身的调用会导致浅溢出
    • 缺点:不易后期维护,必须熟悉lambda表达式和抽象函数中参数的类型、以及可读性差等特点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值