""" lambda 函数的语法只包含一个语句,表现形式如下: lambda [arg1 [,arg2,.....argn]]:expression 其中,lambda 是 Python 预留的关键字,[arg…] 和 expression 由用户自定义。 具体介绍如下: [arg…] 是参数列表,它的结构与 Python 中函数(function)的参数列表是一样的。 [arg…] 可以有非常多的形式。 expression 是一个参数表达式,表达式中出现的参数需要在[arg......]中有定义,并且表达式只能是单行的,只能有一个表达式。 lambda 特性 lambda 函数是匿名的: 所谓匿名函数,通俗地说就是没有名字的函数。lambda函数没有名字。 lambda 函数有输入和输出: 输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值。 lambda 函数拥有自己的命名空间: 不能访问自己参数列表之外或全局命名空间里的参数,只能完成非常简单的功能。 """ # lambda常见用法 # 1.将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数。 add = lambda x, y: x + y add(1, 2) # 2.将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换。 # 为了把标准库time中的函数sleep的功能屏蔽(Mock),我们可以在程序初始化时调用: import time time.sleep = lambda x: None # 这样,在后续代码中调用time库的sleep函数将不会执行原有的功能。 # 例如: time.sleep(3) # 程序不会休眠 3 秒钟,而是因为lambda输出为None,所以这里结果是什么都不做 # 3.lambda高阶用法 # 将lambda函数作为参数传递给其他函数。 # ===========一般写法:=========== # 1、计算平方数 def square(x): return x ** 2 map(square, [1, 2, 3, 4, 5]) # 计算列表各个元素的平方 # 结果: # [1, 4, 9, 16, 25] # ===========匿名函数写法:============ # 2、计算平方数,lambda 写法 map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 结果: # [1, 4, 9, 16, 25] # 3、提供两个列表,将其相同索引位置的列表元素进行相加 map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) # 结果: # [3, 7, 11, 15, 19] """ MAXIMUM = lambda x,y : (x > y) * x + (x < y) * y MINIMUM = lambda x,y : (x > y) * y + (x < y) * x if __name__ == '__main__': a = 10 b = 20 print ('The largar one is %d' % MAXIMUM(a,b)) print ('The lower one is %d' % MINIMUM(a,b)) 以上实例输出结果为: The largar one is 20 The lower one is 10 """
匿名函数lambda
最新推荐文章于 2024-03-16 16:59:50 发布