python中的lambda函数用法指南

作者:柳小葱 时间:2021-04-15 02:58:15 

最近碰见太多次lambda函数了,那就来详细解释一下该函数。

lambda函数

我们先对lambda函数进行一个简单的介绍

  • lambda函数是一种匿名函数,即没有名字的函数

  • 使用lambda保留字定义,函数名是返回结果

  • lambda函数的函数体只是一个表达式

  • lambda函数用于定义简单的、能够在一行内表示的函数

  • lambda表达式” : “后面,只能有一个表达式,def则可以有多个。

  • lambda一般用来定义简单的函数,而def可以定义复杂的函数

先来看一个例子:

g=lambda x:x+1
print(g(1))
#结果为2

可以这样认为,lambda作为一个表达式,定义了一个匿名函数。等价于:

def g(x):
   return x+1

非常容易理解,在这里lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解。

python中的lambda函数用法指南

可传入多个参数

g=lambda x,y,z:x+y+z*2
print(g(1,2,3))
#结果为9

#也可直接传递参数
(lambda x:x**2)(3)
#结果为9

lambda表达式会返回一个函数对象,如果没有变量接受这个返回值的话,它很快就会被丢弃。也正是由于lambda只是一个表达式,所以它可以直接作为list和dict的成员

list_a = [lambda a: a**3, lambda b: b**3]
print(type(list_a[0]))

结果为:

python中的lambda函数用法指南

与map函数进行使用

a = map(lambda x:x**2,range(5))
print(list(a))

结果为:

python中的lambda函数用法指南

补充:一个争议

事实上,关于lambda在Python社区是存在争议的。Python程序员对于到底要不要使用lambda意见不一致。

  • 支持方认为使用lambda编写的代码更紧凑,更“pythonic”。

  • 反对方认为,lambda函数能够支持的功能十分有限,其不支持多分支程序if...elif...else...和异常处理程序try ...except...。并且,lambda函数的功能被隐藏,对于编写代码之外的人员来说,理解lambda代码需要耗费一定的理解成本。他们认为,使用for循环等来替代lambda是一种更加直白的编码风格。

关于lambda的争执没有定论。在实际中,是否使用lambda编程取决于程序员的个人喜好。

来源:https://blog.csdn.net/weixin_48077303/article/details/115432398

标签:python,lambda函数
0
投稿

猜你喜欢

  • MySQL重定位数据库目录的内容

    2009-02-26 16:03:00
  • 分享十个Python提高工作效率的自动化脚本

    2023-12-20 21:34:05
  • Python 十大经典排序算法实现详解

    2021-10-01 02:55:24
  • python win32 简单操作方法

    2022-05-23 01:47:42
  • Python OpenCV对本地视频文件进行分帧保存的实例

    2021-09-15 23:03:18
  • Server.HTMLEncode让代码在页面里显示为源代码

    2023-11-24 13:40:28
  • Python自动化测试之登录脚本的实现

    2022-11-18 07:30:50
  • 利用Python破解斗地主残局详解

    2021-06-04 06:16:49
  • js表单提交显示进度条

    2007-09-18 13:10:00
  • 基于Python实现图片一键切割九宫格的工具

    2022-07-05 00:22:31
  • 树莓派(python)与arduino串口通信的详细步骤

    2022-05-29 15:31:06
  • UTF-8转为GB2312编码的asp函数

    2007-08-23 13:42:00
  • 如何使用django的MTV开发模式返回一个网页

    2023-07-04 21:47:06
  • 盘点十个超级好用的高级Python脚本

    2023-12-04 23:41:27
  • python中_del_还原数据的方法

    2022-07-28 18:49:14
  • Python求出0~100以内的所有素数

    2023-09-17 16:54:02
  • python pickle存储、读取大数据量列表、字典数据的方法

    2021-10-01 11:22:51
  • Flask框架实现的前端RSA加密与后端Python解密功能详解

    2021-07-26 16:28:13
  • Python处理yaml和嵌套数据结构技巧示例

    2023-10-18 04:33:37
  • Python的Tornado框架实现图片上传及图片大小修改功能

    2023-10-27 06:23:43
  • asp之家 网络编程 m.aspxhome.com