Python练习实例48 | 使用lambda来创建匿名函数。

关于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日
北京市通州区京贸中心

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容