Python基础【高阶函数】

发布时间:2019-06-30 16:51:51编辑:auto阅读(1353)

    高阶函数

    map(fun,seq)

    将seq中的元素依次作为参数传入fun,返回由函数返回值组成的新的列表。
    python3:返回一个map对象
    python2:返回列表
    可以用list将对象转换为列表进行调用

    代码:

            def fun(a):
                return a+1
            print(map(fun,[1,2,3,4,5]))
            print(list(map(fun,[1,2,3,4,5])))

    输出结果:

    Python基础【高阶函数】


    filter(fun,seq)

    函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
    该函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
    python3:返回一个filter对象
    python2:返回列表

    代码:

            def fun(a):
                    return True if a%2==1 else False
            print(filter(fun,[1,2,3,4,5]))
            print(list(filter(fun,[1,2,3,4,5])))

    输出结果:

    Python基础【高阶函数】


    reduce(fun,seq)

    reduce传入一个函数一个序列
    fun的参数必须是2个
    首次将seq中前两个元素传入fun中,随后每次将返回值和下一个元素作为新的参数传入函数,直到传入序列中最后一个元素为止,返回一个最后的返回值。
    reduce()是python2中的内置函数
    python3中需要导入funtools包。
    from funtools import reduce

    代码:

            import functools
            from functools import reduce
            def fun(a,b):
                    return a+b
            print(reduce(fun,[1,2,3,4,5]))

    输出结果:

    Python基础【高阶函数】


    sorted(seq,key=...,reverse=...)

    函数对所有可迭代的对象进行排序操作。
    返回一个由seq序列组成的新的序列
    利用key可对需要排序的元素进行筛选

    代码:

            print(sorted([3,1,2,5,4],reverse=True)) ## 逆序
            print(sorted([3,1,2,5,4],key=lambda x:x*-1)) ## 取参数的相反数进行排序

    输出结果:

    Python基础【高阶函数】

关键字