• python匿名函数简记


    一、匿名函数:python使用lambda来创建匿名函数。所谓匿名,就是说不再使用def语句这样标准的形式来定义一个函数。
      1、lambda只是一个表达式,不是一个代码块,函数体比def简单的同时,也有’难以封装更多的逻辑进lambda表达式‘的不足。
      2、lambda函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
      3、虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
      4、语法:lambda [arg1 [,arg2,.....argn]]:expression
        如:result = lambda x: x * x      #result是一个匿名函数,'lambda'和':'中间的元素个素就是所说的参数个数。':'后面的是所要进行的表达式。
        print(result(5)) #输出25

      这里顺便拓展一下lambda和map函数一起用的例子,以熟悉一下map等内置函数:
      a、map():是python的一个内置函数,基本格式是:map(func,seq):func是一个函数对象,seq是一个序列对象,seq的每个元素按照从左到右的顺序依次被取出来,塞到func函数里,并将func的返回值依次存到一个列表里。
        eg:>>>numbers = [1,3,6]
          >>>newNumbers = tuple(map(lambda x:x,numbers))
          >>>print(newNumbers) #输出:(1,3,6)

        eg:>>> numbers = [0,1,2,3,4]
          >>> map(add,numbers) #输出[1, 2, 3, 4, 5]
          >>> map(lambda x: x + 1,numbers) #输出[1, 2, 3, 4, 5]

      b、filter():根据条件过滤选择出想要的。
        eg:>>> numbers = range(-4,4)
          >>> list(filter(lambda x: x > 0,numbers)) #输出[1,2,3]

      c、reduce():reduce 函数的第一个参数是一个函数,第二个参数是序列类型的对象,将函数按照从左到右的顺序作用在序列上。
        eg:>>> reduce(lambda x,y: x+y,[1,2,3,4]) #输出10

      reduce()和map()的区别:map相当于是上下运算的,而reduce是从左到右逐个元素进行运算。
        eg:>>> list1 = [1,2,3,4]
          >>> list2 = [5,6,7,8]
          >>> list(map(lambda x,y: x + y,list1,list2))#输出[6, 8, 10, 12]

  • 相关阅读:
    dedecms列表页实现文档按权重weight排序
    DEDEcms5.7各个文件的作用与安全防御设置
    我的SEO笔记
    分析网站日志
    网页上链接的添加规范与标准
    解决引用bootstrap样式时遇到的冲突问题
    js滚动到指定位置导航栏固定顶部
    使用rem自适应屏幕
    SQL 操作结果集 -并集、差集、交集、结果集排序
    简洁的左右滑动式轮播图
  • 原文地址:https://www.cnblogs.com/yangrongkuan/p/12073787.html
Copyright © 2020-2023  润新知