什么是lambda?

lambda是Python中预留的一个关键词,当我们需要一个函数,而又不想重新去为函数命名时,我们就可以使用lambda关键词来简单的去定义一个函数,也就是所谓的匿名函数,它在我们的编程过程中会出现很多次。

lambda函数的语法

在Python中,我们可以这样定义一个lambda函数,它的语法格式为:

lambda argument_list: expression

  • argument_list是参数列表,也就是函数所用到的参数
  • expression是关于参数的表达式,表达式中的参数需要在参数列表中有定义

这里我们需要注意,参数列表argument_list与表达式expression之间要用":"隔开,并且lambda函数具有输入和输出,它的输入就是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的结果(等效于return)。

lambda函数的用法

  1. 将lambda函数赋值给变量,通过变量间接调用lambda函数
    例如我们定义一个lambda函数,并将其赋值给变量a,就能直接用变量a调用lambda函数

    >>> a=lambda x:x+3
    >>> a(5)
    8
    
  2. 将lambda函数作为其他函数的返回值
    lambda函数作为其他函数的返回值时,此时lambda函数实际为函数的内嵌函数

    >>>def test(n):
    ...return lambda x:x+n
    >>>t=test(3)
    >>>t(2)
    5
    

    lambda函数作为test函数的内部函数,能够访问外部函数的变量n,就形成了所谓的闭包,这里不作进一步阐述

  3. 将lambda函数作为其他函数的参数
    利用lambda函数我们可以实现对函数编程,即把lambda函数当做参数传递给其他函数,例如map()函数,map()函数会根据提供的函数对指定序列做映射,这里以一个阿里面试题为例:

    用一行代码实现对a=[1,2,3,4,5]的偶数位置的元素进行加3后求和
    我们可以利用定义lambda函数,然后把它当作参数传递给map()函数,就可以返回对偶数位置的映射,然后对其求和

    >>> a=[1,2,3,4,5]
    >>> map(lambda x:x+3,a[1::2])
    >>> print(list(map(lambda x:x+3,a[1::2])))
    [5, 7]
    >>> sum(map(lambda x:x+3,a[1::2]))
    12
    

    与map()函数类似的内置函数还有filter()、reduce()、sorted()等。

     >>> filter(lambda x: x % 3 == 0,[1,2,3,4,5,6,7,8,9])>[3, 6, 9]
    
    >>> from functools import reduce
    >>> reduce(lambda x,y: x+y,[1,2,3,4,5])
    15
    
    >>> sorted([0,-3,2,-9,7,4,-1],key=lambda x: abs(x))
    [0, -1, 2, -3, 4, 7, -9]
    

总结

python鼓励我们利用lambda写一些简单的函数,lambda函数可以使我们的代码更加紧凑,并且不用担心命名冲突。但语法格式决定lambda只能是一个表达式,而不是一个代码块,因此不能实现复杂的逻辑(不能写条件分支语句和异常处理等)。

详解python中的lambda函数相关推荐

  1. python join_详解Python中的join()函数的用法

    函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔符) ...

  2. python中index函数_详解python中的index函数用法

    1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...

  3. python中怎么做分组问题_详解Python中的分组函数groupby和itertools)

    具体代码如下所示: from operator import itemgetter #itemgetter用来去dict中的key,省去了使用lambda函数 from itertools impor ...

  4. python中index方法详解_详解python中的index函数用法

    1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...

  5. 【Kay】详解Python中的random()函数

    1.python中的random函数 random() 方法返回随机生成[0,1)范围内的一个实数 randint(a,b)方法随机生成a到b范围内的一个整数 randrange(a,b,c)方法生成 ...

  6. python 中split函数的应用_举例详解Python中的split()函数的使用方法

    函数:split() python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(li ...

  7. python语句join_详解Python中的join()函数的用法

    原博文 2017-08-07 20:51 − 函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组.将字 ...

  8. 详解Python中的join()函数的用法(字符串和os.path)

    函数:string.join()  Python中有join()和os.path.join()两个函数,具体作用如下:  join(): 连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔 ...

  9. 详解python中的round()函数

    round() round()是python自带的一个函数,用于数字的四舍五入. 使用方法(环境python3) round(number,digits) 参数: digits>0,四舍五入到指 ...

最新文章

  1. java response返回xml_Spring 返回Xml格式
  2. Facebook最新Libra币开发指南---接口服务器开发2
  3. PMCAFF微课堂 | 运营女神揭秘产品运营推广中的场景思维
  4. 使用MFC进行编程,绘制直线椭圆以及样条曲线
  5. iframe子页面内刷新父页面中另一个iframe子页面
  6. 哈佛大学刘小乐教授讲授的计算生物学和生物信息学导论 (2020 视频+资料)
  7. CoordinatorLayout 使用综述系列(二)与AppBarLayout结合上下联动效果
  8. avs v7.0 php,AVS v7.0 – PHP在线视频上传分享程序
  9. iQOO Neo6现身安兔兔数据库:高导热稀土散热加入 跑分轻松破百万
  10. Caffe学习:pycaffe利用caffemodel进行分类=批处理
  11. 5款最好用的前端开发工具
  12. React.js小书结合官方文档第一部分笔记
  13. Python网络爬虫简单入门
  14. 测度论与概率论基础学习笔记7——3.1积分的定义
  15. SPSS如何进行Cox回归分析操作
  16. png在ai转为路径_png格式转为ai格式
  17. c语言常用延时程序,新手常用单片机延时程序
  18. 微信小程序| Ngork内网传统+后台API通信例子
  19. delete、truncate 、Drop删除表的区别
  20. CClientDC类

热门文章

  1. 图片怎么加水印?建议收藏这些方法
  2. S7200通过BCNet-S7200Plus和SMART200 PLC数据交换
  3. webpack5升级踩坑(process、Buffer is not defined)
  4. 普鸥知识产权|美国外观设计专利 侵权判定?
  5. 大三不努力,大四徒伤悲 No.151
  6. 风靡全球,TikTok会是下一个跨境电商巨头吗?怎么申请Tik Tok-MCN呢?(内附详细步骤)
  7. S7-200smart远程无线模拟量信号采集案例
  8. 秋大android 6.0root,小米Note刷机包 基于MINote-MIUI6_6.6.2.0稳定版深度定制 自动ROOT 丝般顺滑 超级...
  9. d3d11的转换-两个立方体发生旋转
  10. HTTP协议请求类型