• Python高阶函数总结


    ***高阶函数
    知识的1、函数本身可以赋值给变量,即:变量可以指向函数
    知识点2、函数名也是变量
    知识点3、函数的参数能够接受别的函数,这种函数为高阶函数

    如:
    def add(x,y,f):
    return f(x) + f(y)
    Python内建了map()和reduce()
    ***高阶函数map()
    map()函数接受两个参数,1个是函数,一个是序列,把序列的每一个元素按函数的方式进行计算,计算的返回值即是map()函数的返回值(一个序列)

    map()把运算规则抽象了,除了计算简单的f(x)=x*x,而且还可以计算复杂的函数,比如map(str,[1,2,3,4,5,6,7,8,9])

    ***高阶函数reduce()
    reduce()函数也接受两个参数(1个是函数,一个是序列),也是把函数作用在序列上(如[x1,x2,x3,x4,x5]),但是该参数函数必须接受2个参数,reduce继续把结果和下一个序列元素做累积计算,
    其效果即是reduce(f,[x1,x2,x3,x4,x5]) = f(f(f(f(x1,x2),x3),x4),x5)
    >>> def fn(x,y):
    return x*10 + y
    >>> reduce(fn,[1,2,3,4,5])
    12345

    ***高阶函数filter()
    Python内建的filter()函数用于过滤序列
    和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

    在一个list中,删掉偶数,只保留奇数,可以这么写
    def is_odd(n):
    return n % 2 == 1

    filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])
    # 结果: [1, 5, 9, 15]

    用filter()这个高阶函数,关键在于正确实现一个“筛选”函数

    ***高阶函数sorted()和排序算法
    Python内建的sorted()函数可以对list进行排序

    通常规定,对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1,这样,排序算法就不用关心具体的比较过程,而是根据比较结果直接排序。

    另外,sorted()也是一个高阶函数,可以接收一个自定义的比较函数实现自定义的排序
    如sorted([36, 5, 12, 9, 21], lambda x, y: y - x) 和sorted([36, 5, 12, 9, 21][::-1]


    高阶函数总结:
    1、map educefiltersorted函数都可以接收一个函数f和一个序列L,区别是:

    map函数把序列中的各个元素都按f进行执行,返回一个序列

    reduce函数把序列计算前2个的结果,然后用结果继续后后面的元素组成函数参数进行计算,一直累积计算,直到返回结果,返回值是一个结果值

    filter函数用于过滤序列,自定义过滤规则。返回一个序列

    sorted用于排序序列,可以自定义排序规则。返回一个序列

  • 相关阅读:
    某耳机厂商微信公众平台建设方案
    微信公众号订单好评红包返现系统
    LNMP的配置与优化
    微信公众号用户OpenID同步导出系统
    微信公众号无限定时群发系统
    小程序想要什么
    微信支付默认推荐关注规则
    微信小程序(应用号)资源汇总整理
    微信公众平台小程序开发教程
    微信应用号开发教程
  • 原文地址:https://www.cnblogs.com/qiufengsuopo/p/8683155.html
Copyright © 2020-2023  润新知