1. """
    lambda 参数列表 : 返回值
    lambda 参数形式:
    1.无参数:lambda:100
    2.一个参数:lambda a: a
    3.默认参数:lambda a, b, c=100: a + b + c
    4.可变参数:*args,返回元组
    lambda *args: args
    5.可变参数:*kwargs,返回字典
    lambda **kwargs: kwargs
  2.  
  3. lambda 应用:简化代码
    1.判断,lambda a, b: a if a > b else b
    2.列表数据按字典 key 值排序
    """
  4.  
  5. # def fn1():
    # return 100
  6.  
  7. # def de1():
    # r = fn1()
    # print(r)
    # r2 = lambda: 100
    # print(r2) # 地址:<function main.<locals>.<lambda> at 0x00CCD6E8>
    # print(r2()) # 返回值:100
  8.  
  9. # def test2():
    """
    lambda 测试案例
    """
    # fn1 = lambda a, b: a + b
    # print(fn1(1, 2))
    # fn2 = lambda *args: args
    # print(fn2(1, 2, 3))
    # print(fn2(1, 3))
    # print(fn2(1)) # (1,)
    # fn3 = lambda **kwargs: kwargs
    # print(fn3(name='py', age=30))
    #
    # fn4 = lambda a, b: a if a > b else b
    # print(fn4(100, 200))
    #
    # student = [{'name': 'a', 'id': '1', 'tel': 'a1'},
    # {'name': 'b', 'id': '2', 'tel': 'b2'},
    # {'name': 'c', 'id': '3', 'tel': 'c3'}]
    # student.sort(key=lambda x: x['name'])
    # print(student)
    # student.sort(key=lambda x: x['name'], reverse=True)
    # print(student)
    # student.sort(key=lambda x: x['id'])
    # print(student)
  10.  
  11. """
    高阶函数:def add_num(a, b, f)
    内置高阶函数:
    1.map(func, list):
    将func 应用于list中的每一个元素,返回一个迭代器
    2.reduce(func, list):
    计算结果与下一个数据做累积计算,必须有两个参数
    from functools import reduce
    3.filter(func, list):
    过滤掉不符合条件的元素,返回一个filter对象,可用list()转换
    """
  12.  
  13. # def add_num(a, b, f):
    # # 传入函数 f
    # return f(a) + f(b)
  14.  
  15. # def func(x):
    # return x ** 2
  16.  
  17. from functools import reduce
  18.  
  19. def add_2(a, b):
    return a + b
  20.  
  21. def func3(x):
    return x % 2 == 0
  22.  
  23. def main():
    """
    体验高阶函数
    :return:
    """
    # print(abs(-2)) # 求绝对值
    # print(round(0.1)) # 四舍五入
    # s1 = add_num(1, 2, abs)
    # s2 = add_num(1, 2.5, round)
    # print(s1, s2)
  24.  
  25. list1 = [1, 2, 3, 4, 5]
    # map(func, list1)
    # print(list(map(func, list1)))
    # s = reduce(add_2, list1)
    # print(s)
    r = filter(func3, list1)
    print(r) # <filter object at 0x00CAE2E0>
    print(list(r)) # [2, 4]
  26.  
  27. if __name__ == '__main__':
    main()

python—lambda函数,三个常用的高阶函数的更多相关文章

  1. python 常用的高阶函数

    前言 高阶函数指的是能接收函数作为参数的函数或类:python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率. map() map函数可以把一个迭代对象转换成另一个可迭代对象,不过在pyth ...

  2. python基础之常用的高阶函数

    前言 高阶函数指的是能接收函数作为参数的函数或类:python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率. map() map函数可以把一个迭代对象转换成另一个可迭代对象,不过在pyth ...

  3. Python开发【第十三篇】高阶函数、递归函数、闭包

    函数式编程是指用一系列函数解决问题 好处:用每个函数完成每个细小的功能,一系列函数任意组合能够解决大问题 函数仅仅接收输入并产生输出,不包含任何能影响输出的内部状态 函数之间的可重入性 当一个函数的输 ...

  4. Python基础笔记:函数式编程:高阶函数、返回函数、匿名函数

    高阶函数 高阶函数:一个函数可以接收另一个函数作为参数 或 一个函数可以返回一个函数作为返回值,这种函数称之为高阶函数. #函数 add 接收 f 函数作为参数 >>> def ad ...

  5. 小白的Python之路 day3 函数式编程,高阶函数

    函数式编程介绍   函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的 ...

  6. Python序列函数、高级特性及高阶函数

    序列函数: enumerate: for循环时记录索引,逐个返回元组(i, item) sorted:返回新的有序列表 zip:压缩将多个序列的对应位置的元素组成元组 zip(*元组列表): 解压缩 ...

  7. python学习笔记1 -- 函数式编程之高阶函数 filter

    filter 函数用于过滤序列,与map 和reduce函数类似,作为高阶函数,他们也是同样的使用方法,filter(参数1, 参数2),参数1是一个函数,而参数2是一个序列. filter的作用是根 ...

  8. python学习笔记1 -- 函数式编程之高阶函数 map 和reduce

    我用我自己,就是高阶函数,直接表现就是函数可以作为另一个函数的参数,也可以作为返回值 首先一个知识点是 函数的表现形式,印象中的是def  fw(参数)这种方式定义一个函数 python有很多的内置函 ...

  9. Python开发——函数【装饰器、高阶函数、函数嵌套、闭包】

    装饰器 装饰器本质就是函数,为其他函数添加附加功能. 原则: 不修改被修饰函数的源代码 不修改被修饰函数的调用方法 装饰器知识储备:装饰器 = 高阶函数 + 函数嵌套 + 闭包 案例:求函数运行时间! ...

随机推荐

  1. 在Centos7上安装Oracle

    环境: 硬盘30G:2G RAM:Centos7:Oracle 11G: 1.创建组和用户 [zzd@localhost ~]$ su root #切换到root Password: [root@lo ...

  2. http://i.youku.com/u/UMzQ3NjQ0MDAw C语言教学 觅风

    http://i.youku.com/u/UMzQ3NjQ0MDAw C语言教学 觅风

  3. centos6.8安装lnmp

    一.配置CentOS 第三方yum源(CentOS默认的标准源里没有nginx软件包) [root@localhost ~]# yum install wget #安装下载工具wget[root@lo ...

  4. 最大连续和(dp复习)

    最大连续和:给出一段序列,选出其中连续且非空的一段使得这段和最大. stdin: 7 2 -4 3 -1 2 -4 3 stdout: 4 状态转移方程:dp[i]=max(dp[i-1]+a[i], ...

  5. [Python源码剖析]字符缓冲池intern机制

    static PyStringObject *characters[UCHAR_MAX + 1]; ... /* This dictionary holds all interned strings. ...

  6. Codeforces 1248C Ivan the Fool and the Probability Theory(推公式)

    题意 一个n*m的网格图,每个格子可以染黑色.白色,问你每个格子最多有一个相邻颜色相同的方案数 n,m<=1e5 思路 我们先处理\(1 \times m\)的情况 设\(f[i][j]\)为前 ...

  7. python之sorted用法

    operator.itemgetter函数 operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子. a = [1, ...

  8. 林大妈的JavaScript进阶知识(二):JS异步行为

    JavaScript 是单线程执行的 JavaScript运行在浏览器中.浏览器是多线程的,但只分配了其中一条给JavaScript,作为它的主线程.对于编码者来说,JavaScript是单线程的.因 ...

  9. C语言寒假大作战04

    问题 答案 这个作业属于那个课程 https://edu.cnblogs.c0m/campus/zswxy/CST2019-4 这个作业的要求在哪里 https://edu.cnblogs.com/c ...

  10. 深入理解JVM(一)--Java 内存区域

    一.  运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域. Java虚拟机所管理的内存将会包括以下几个运行时数据区域:               ...