技术背景
lambda表达式本身是一个非常基础的python函数语法,其基本功能跟使用def所定义的python函数是一样的,只是lambda表达式基本在一行以内就完整的表达了整个函数的运算逻辑。这里我们简单展示一些lambda表达式的使用示例,以供参考。
二元求和
首先我们尝试一个最简单的二元求和的ipython案例,输入两个参数x和y,返回这两个元素的和:
1
2
3
4
5
6
7
8
9
|
[dechin@dechin - manjaro 2021 - python]$ ipython Python 3.8 . 5 (default, Sep 4 2020 , 07 : 30 : 14 ) Type 'copyright' , 'credits' or 'license' for more information IPython 7.19 . 0 - - An enhanced Interactive Python. Type '?' for help . In [ 1 ]: sum2 = lambda x,y: x + y In [ 2 ]: sum2( 3 , 5 ) Out[ 2 ]: 8 |
结合map函数
在一些函数被频繁调用的场景,比如凸优化算法,或者是python中的map函数实现,这里以map函数为示例展示一下lambda函数在其中的用法:
1
2
|
In [ 9 ]: list ( map ( lambda x:x * * 2 , range ( 10 ))) Out[ 9 ]: [ 0 , 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64 , 81 ] |
去掉奇数
在def所定义的python函数中,我们可以执行任意的python格式的代码,但是在lambda表达式下,像if这种常见的条件判断语句的语法要发生一定的变化,可以参考如下示例:
1
2
|
In [ 19 ]: list ( map ( lambda x:x if x - (x>> 1 ) * 2 = = 0 else None , range ( 10 ))) Out[ 19 ]: [ 0 , None , 2 , None , 4 , None , 6 , None , 8 , None ] |
这个案例演示的是,输入一个数组,经过一些运算之后保留偶数,而用None替换所有的奇数。这里面用到的运算符是>>移位算符,其等价于常用的//符号。但是这非常值得引起重视,因为在有些语言中,移位算符的操作速度要高于四则运算的算符。
总结概要
本文主要展示了一些lambda表达式的使用示例,通过这些示例,我们可以了解到lambda表达式的常用语法以及使用的场景。在一般情况下,其最大的意义还是简化了python中函数的定义方式,在可读性上远不如def所定义的函数。
以上就是python3 lambda表达式详解的详细内容,更多关于python3 lambda表达式的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/dechinphy/p/lambda.html