关于lambda函数,在Python当中属于匿名函数,顾名思义,就是函数严格上来说只是定义了一个算法,并没有具体的名称。
小黄人.jpg
关于究竟什么是lambda函数,作者这里在这里也不做过多的讲解,不过,有兴趣的小伙伴们,不妨可以参考一下这篇文章:关于Python中的lambda,这篇阅读量10万+的文章可能是你见过的最完整的讲解,文章源于SCDN,作者看了一下,介绍的相对来说还是比较详细的。
网上可以从很多地方找到这个题目的答案,但是可能有相当多的一部分人在看完之后,不明所以,我们先来看下这个所谓的“标准”答案吧。
# 演示一:
MAX = lambda x,y : (x > y) * x + (x < y) * y # 定义并判断x和y中,较大的数
MIN = lambda x,y : (x > y) * y + (x < y) * x #定义并判断x和y中,较小的数
if __name__ == "__main__": # 程序运行入口
a = 10 # 将10赋值给变量a
b = 20 # 将20赋值给变量b
print("大的数字为:%d"%MAX(a,b)) # 打印变量ab中大的数
print("小的数字为:%d"%MIN(a,b)) # 打印变量ab中小的数
=============
输出的结果为:
C:\Python\python.exe "C:/Users/Administrator/Desktop/Python 练习实例100题/练习49.py"
大的数字为:20
小的数字为:10
Process finished with exit code 0
但是,不少人的这个程序不理解,很大一部分原因是搞不明白lambda后面的公式 (x > y) * x + (x < y) * y 是什么意思。
那么,接下来,我们来想一个更加简单一点的,或许可以让小伙伴们能够理解究竟是怎么一回事。
# 演示二:
sum = lambda c,d:c+d
if __name__ == "__main__":
e = 10
f = 20
print("打印出结果:%d"%sum(e,f))
=============
C:\Python\python.exe "C:/Users/Administrator/Desktop/Python 练习实例100题/练习49.py"
打印出结果:30
Process finished with exit code 0
其实,很简单,这里的lambda,定义了两个变量c和d,然后冒号后面,是针对这两个变量的算法,然后将这个简单的算法赋值给另外一个变量sum。
下面再进行计算的时候,如果想要对某两个变量进行同样的算法的话,则直接调用这个sum函数即可。
2020年3月17日
北京市通州区京贸中心
网友评论