zoukankan      html  css  js  c++  java
  • Python-07-高阶函数

    一、定义

    默认满足以下两个条件中的一个就是高阶函数:

    • 函数的传入参数是一个函数名
    • 函数的返回值是一个函数名

    二、map函数

    map接收两个参数,一个函数和一个Iterable,map将接收到的函数作用于Iterable的每一个元素上,并返回一个新的Iterable。

    def foo(x):
        return x ** 2
    
    mlist = [1, 2, 3, 4, 5, 6]
    r = map(foo, mlist)
    print(list(r))
    
    [1, 4, 9, 16, 25, 36]
    

    三、filter函数

    Python内建的filter()函数用于过滤序列。

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

    def is_odd(n):
        return n % 2 == 0
    
    r = filter(is_odd, [1, 2, 3, 4, 5, 6])
    print(list(r))
    
    [2, 4, 6]
    

     四、reduce函数

    reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

    reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
    from functools import reduce
    def add(x, y):
        return x + y
    
    r = reduce(add, [1, 2, 3, 4, 5, 6])
    print(r)
    
    21
    
     
  • 相关阅读:
    第八章 采样
    第七章 优化算法
    第六章 概率图模型
    第五章 非监督学习
    第四章 降维
    第三章 经典算法
    第二章 模型评估
    第一章 特征工程-------------《百面机器学习》
    中等-102,107-二叉树的层序遍历
    字符串单模式匹配 暴力+哈希
  • 原文地址:https://www.cnblogs.com/lsf123456/p/11170558.html
Copyright © 2011-2022 走看看