我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

很多高级编程语言里面,都有lambda表达式的写法。python语言里面也有这种lambda表达式的写法。实际上,拉姆达表达式可以理解为短小精悍一句话的匿名函数。如果铭记这条"短小精悍的匿名函数"总结的话,本文的内容就非常容易理解了。

苏南大叔:python代码,如何理解lambda表达式?lambda使用方法 - lambda表达式使用方法
python代码,如何理解lambda表达式?lambda使用方法(图3-1)

苏南大叔的“程序如此灵动”技术博客,记录苏南大叔的代码经验总结。本文测试环境:win10python@3.11.0

lambda是匿名函数

python代码中,输出拉姆达的类型,就会显示它是个function

say = lambda x: x + "!苏南大叔"
print(say, type(say))
# <function <lambda> at 0x000001FEB80004A0> <class 'function'>

print(say("hola"))
# hola!苏南大叔

既然是个匿名函数,它的使用范围就很小。仅仅在很普通的范围内有效,并不会复用到其它地方。

lambda传参数自执行

是函数就必然可以传参数,和普通的参数相比较的话:

  • 就是简单的少了括号的修饰。
  • 多个形参就使用逗号进行分割。

如果给这个lambda表达式传递实参的话,普通情况下,就是个自执行(lambda ...)()的写法。这和js中的匿名函数的写法,非常类似。

s0 = (lambda: "hola!苏南大叔")()
s1 = (lambda x: x + "!苏南大叔")("hola")
s2 = (lambda x, y: x + "!" + y)("hola", "苏南大叔")
s3 = (lambda x, y, z: x + y + z)("hola", "!", "苏南大叔")
print(s0)  # hola!苏南大叔
print(s1)  # hola!苏南大叔
print(s2)  # hola!苏南大叔
print(s3)  # hola!苏南大叔

苏南大叔:python代码,如何理解lambda表达式?lambda使用方法 - lambda表达式
python代码,如何理解lambda表达式?lambda使用方法(图3-2)

lambda作为高阶函数参数

可以接受匿名函数(例如本文的lambda)作为普通参数的函数,称之为高阶函数。而lambda表达式实质上就是个匿名函数。所以,可以传递到高阶函数中,作为一种特殊的也是比较常见的使用方式。

例子如下:

_list = [9, "100", 6, "77", "99"]
print(sorted(_list, key=lambda x: str(x)))  #['100', 6, '77', 9, '99']
print(sorted(_list, key=lambda x: int(x)))  #[6, 9, '77', '99', '100']

苏南大叔:python代码,如何理解lambda表达式?lambda使用方法 - 高阶函数调用
python代码,如何理解lambda表达式?lambda使用方法(图3-3)

更多lambda表达式的使用文章例子:

结束语

苏南大叔个人觉得这个lambda字样也是比较繁杂的,不排除其后续的语法糖进化,比如进化成就一个字母l
苏南大叔写了很多python相关的经验文章了,欢迎点击下面的链接查看python经验文章集合:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python