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简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解。
可传入多个参数
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]))
结果为:
与map函数进行使用
a = map(lambda x:x**2,range(5))
print(list(a))
结果为:
补充:一个争议
事实上,关于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
猜你喜欢
- 你是否发现,在浩如烟海的应用程序堆里,具有漂亮图标和清爽名字的 App 更容易被用户喜爱。作为开发者,面对这自己的作品,能否自问一句:“从图
- pycharm设置Console控制台输出自动换行解决方法File --> Settings… --> E
- 本文实例为大家分享了python实现人机对战井字棋的具体代码,供大家参考,具体内容如下游戏简介:在九宫格内进行,如果一方抢先于另一方向(横、
- 本文实例讲述了Python根据已知邻接矩阵绘制无向图操作。分享给大家供大家参考,具体如下:有六个点:[0,1,2,3,4,5,6],六个点之
- 首先感谢比尔、感谢微软、感谢MSDN,是他们让我看到他们富有创意的一面,好了好了不废话了。我们经常把多个CSS或者多个JS并成一个,以节省请
- 用户管理是绝大部分Web网站都需要解决的问题。用户管理涉及到用户注册和登录。用户注册相对简单,我们可以先通过API把用户注册这个功能实现了:
- 本文实例分析了Python自定义进程池。分享给大家供大家参考,具体如下:代码说明一切:#encoding=utf-8#author: wal
- AlexNet是2012年ImageNet比赛的冠军,虽然过去了很长时间,但是作为深度学习中的经典模型,AlexNet不但有助于我们理解其中
- 最近对list设计感兴趣,今天说的是list视图方式的设计。感觉有些细节非常有意思,拿出来跟大家讨论。首先我们来看下windows下文件夹管
- defaultdict底层代码在字典中查找某个值时,若key不存在时则会返回一个KeyError错误而不是一个默认值,这时候可以使用defa
- 一、前言 说实话,刚测试ES的时候,我的内心是崩溃的,好多单词都不知道
- Mr.Think是一个喜欢简洁的人,喜欢如诗一样的代码.不喜欢.NET的代码,就是因为经常看到同事用VS后生成出来的一段段冗长的代码.在我的
- 定时器定时器:每隔一段时间启动一次线程threading.Timer创建的是一个线程!定时器基本上都是在线程中执行创建定时器:threadi
- 基本原理使用Adodb.Stream读二进制文件然后进行解析,然后返回一数组第一个元素为类型(BMP JPG PNG GIF SWF)第二个
- 1.python函数运行原理import inspectframe = Nonedef foo(): bar()def bar(
- 本文实例讲述了Django中实现点击图片链接强制直接下载的方法。分享给大家供大家参考。具体分析如下:当用户点击图片连接时,默认为在浏览器中直
- lambda函数lambda是什么大家好,今天给大家带来的是有关于Python里面的lambda表达式详细解析。lambda在Python里
- 目录一、字典概念二、字典操作(一)创建字典1、先创建空字典,再添加元素(键值对)2、直接创建包含若干键值对的字典(二)字典操作1、读取字典元
- 清除视图缓存,就是清除D:\phpStudy\WWW\BCCKidV1.0\storage\framework\views\002f30b1
- 前言本篇文章主要讲述了Mac下Redis的安装和使用的经验,并将python如何操作Redis做了简单介绍。1. redis 安装 和启动1