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


猜你喜欢
- 本文实例讲述了Python3.6基于正则实现的计算器。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-#!pyt
- 在安排Web页面的布局时,最常用的方法之一是用HTML表格界定页面的结构。例如,假设Web页面由顶端的
- 前言在这篇文章中,准备用 Python 从头开始实现一个全连接的神经网络。你可能会问,为什么需要自己实现,有很多库和框架可以为我们做这件事,
- 通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。以下为与Runtime
- git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态git stash #把所有没有提交的修改暂存到stash里
- 今儿继续做项目,学习了Django的forms生成前端的代码。forms.pyclass SignupForm(forms.Form): &
- 在Python 2.7中,一个float的repr返回最接近十七位数的十进制数;这足以精确地识别每个可能的IEEE浮点值.浮点数的str类似
- 很多人会把Primary Key和聚集索引搞混起来,或者认为这是同一个东西。这个概念是非常错误的。 主键是一个约束(constraint),
- 前言有时候字符串匹配解决不了问题,这个时候就需要正则表达式来处理。因为每一次匹配(比如找以什么开头的,以什么结尾的字符串要写好多个函数)都要
- 一、概述spark 有三大引擎,spark core、sparkSQL、sparkStreaming,spark core 的关键抽象是 S
- 多属性排序:把需要排序的属性拿出来作为一个 tuple,主要的放前面,次要的放后面。假如某对象有n个属性,那么先按某规则对属性a进行排序,在
- 本文实例讲述了Python类的继承、多态及获取对象信息操作。分享给大家供大家参考,具体如下:继承类的继承机制使得子类可以继承父类中定义的方法
- 之前在网上查找了很多相关资料,有说设置icon高度来支持item的,有说要添加自己写指定高度的view来填充的,但是对于一个只有文字的Qco
- 对于一个网站的图片、文字音视频等,如果我们一个个的下载,不仅浪费时间,而且很容易出错。Python爬虫帮助我们获取需要的数据,这个数据是可以
- 一个网站的一个页面download.asp通过判断referer来确定是不是从他本站点过来的链接,使用这个功能我们可以用来防止下载盗链,当然
- 介绍我们用django在本地调试完了之后,会在服务器上进行部署,如果是大佬那就忽略本文章,如果是萌新对编程命令不太熟悉,那就要用到宝塔了。流
- export default和export的区别export主要用于对外输出本模块变量的接口,一个文件就可以被理解为一个模块。export就
- 本文实例讲述了Python实现统计给定字符串中重复模式最高子串功能。分享给大家供大家参考,具体如下:给定一个字符串,如何得到其中重复模式最高
- 本文实例为大家分享了JavaScript自定义日历效果的具体代码,供大家参考,具体内容如下实现思路:获取每个月的第一天是星期几,然后把前面的
- asp之家注:本篇asp留言本教程可以说是我见过的最详细,写的最认真的,最适合初学者来学习asp的一篇教程。在此感谢作者hemooday。可