python中的lambda函数用法指南

01-06 204阅读 0评论

?=最近碰见太多次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只是一个表达式,所以它可以直接作为listdict成员

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编程取决于程序员的个人喜好。

总结

lambda函数使代码结构更加紧凑,但却使代码看起来不是那么清晰。

参考资料

https://zhuanlan.zhihu.com/p/80960485

到此这篇关于python中的lambda函数用法的文章就介绍到这了,更多相关python中lambda函数内容请搜索云初冀北以前的文章或继续浏览下面的相关文章希望大家以后多多支持云初冀北!

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:Goliszhou@gmail.com
$

发表评论

表情:
评论列表 (暂无评论,204人围观)

还没有评论,来说两句吧...