Python中lambda表达式的用法

宁睿  金牌会员 | 2024-5-18 16:43:48 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 950|帖子 950|积分 2860

lambda表达式本身是一个非常底子的python函数语法,其根本功能跟使用def所定义的python函数是一样的,只是lambda表达式根本在一行以内就完备的表达了整个函数的运算逻辑。这里我们简单展示一些lambda表达式的使用示例,以供参考。
二元求和

起首我们实验一个最简单的二元求和的ipython案例,输入两个参数x和y,返回这两个元素的和:
  1. [dechin@dechin-manjaro 2021-python]$ ipython
  2. Python 3.8.5 (default, Sep  4 2020, 07:30:14)
  3. Type 'copyright', 'credits' or 'license' for more information
  4. IPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.
  5. In [1]: sum2 = lambda x,y: x+y
  6. In [2]: sum2(3,5)
  7. Out[2]: 8
复制代码
结合map函数

在一些函数被频繁调用的场景,比如凸优化算法,大概是python中的map函数实现,这里以map函数为示例展示一下lambda函数在此中的用法:
  1. In [9]: list(map(lambda x:x**2, range(10)))
  2. #学习中遇到问题没人解答?小编创建了一个Python学习交流群:153708845
  3. Out[9]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
复制代码
去掉奇数

在def所定义的python函数中,我们可以执行任意的python格式的代码,但是在lambda表达式下,像if这种常见的条件判断语句的语法要发生一定的变化,可以参考如下示例:
  1. In [19]: list(map(lambda x:x if x-(x>>1)*2==0 else None, range(10)))
  2. Out[19]: [0, None, 2, None, 4, None, 6, None, 8, None]
复制代码
这个案例演示的是,输入一个数组,经过一些运算之后保留偶数,而用None替换全部的奇数。这内里用到的运算符是>>移位算符,其等价于常用的//符号。但是这非常值得引起重视,因为在有些语言中,移位算符的操作速度要高于四则运算的算符。
总结

本文重要展示了一些lambda表达式的使用示例,通过这些示例,我们可以了解到lambda表达式的常用语法以及使用的场景。在一般情况下,其最大的意义还是简化了python中函数的定义方式,在可读性上远不如def所定义的函数。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表