python3 lambda表达式详解

作者:DechinPhy 时间:2021-03-01 20:28:20 

技术背景

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

二元求和

首先我们尝试一个最简单的二元求和的ipython案例,输入两个参数x和y,返回这两个元素的和:


[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函数在其中的用法:


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这种常见的条件判断语句的语法要发生一定的变化,可以参考如下示例:


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所定义的函数。

来源:https://www.cnblogs.com/dechinphy/p/lambda.html

标签:lambda表达式,Python
0
投稿

猜你喜欢

  • Python2/3中urllib库的一些常见用法

    2023-11-05 00:24:04
  • Python 机器学习之线性回归详解分析

    2023-08-12 09:48:13
  • Python subprocess库六个实例快速掌握

    2021-02-22 05:53:56
  • python抢购软件/插件/脚本附完整源码

    2021-04-25 22:03:17
  • 解决usageerror: line magic function "%%time" not found问题

    2022-06-16 15:53:29
  • 深入浅析Python传值与传址

    2021-01-24 01:19:46
  • Python定义一个Actor任务

    2022-05-30 09:24:50
  • Web 标准要求一览表

    2009-01-08 12:35:00
  • 在Python 字典中一键对应多个值的实例

    2023-07-25 23:45:02
  • tensorflow tf.train.batch之数据批量读取方式

    2023-12-08 01:11:51
  • Python readline()和readlines()函数实现按行读取文件

    2022-02-21 13:19:36
  • Pytorch中的 torch.distributions库详解

    2021-05-17 22:26:47
  • Python写的一个简单DNS服务器实例

    2021-03-25 21:13:47
  • python TCP Socket的粘包和分包的处理详解

    2021-06-14 16:49:50
  • Request.ServerVariables("HTTP_REFERER")的用法

    2008-06-19 13:33:00
  • 详解在OpenCV中实现的图像标注技术

    2023-12-01 11:54:34
  • Python生成器(Generator)详解

    2022-10-05 01:14:43
  • 百度百科中的asp词条:什么是asp

    2008-10-11 14:38:00
  • 详解python函数传参传递dict/list/set等类型的问题

    2021-09-29 16:12:38
  • Server_Name与Http_Host的区别

    2008-06-19 13:39:00
  • asp之家 网络编程 m.aspxhome.com