Lambda 表达式(lambda expression)是一个 匿名函数 ,Lambda表达式基于数学中的 λ演算 得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。 Lambda表达式可以表示 闭包 (注意和数学传统意义上的不同)。
#1 基本定义理解,通过对比定义函数与匿名函数。
def square(x):
return x*x
square(3)
9
square1=lambda x:x*x
square1
<function <lambda> at 0x0000025731A31BD0>
square
<function square at 0x0000025731A31750>
square1(3)
9
注意到,定义的square与square1的性质都是函数,引用的时候方法相同。因为square=lambda x:x*x 离开了函数名字也可以被使用,所以叫做匿名函数。
#2 匿名函数确实没有出现函数名字,只有lambda关键字。将其可以放在列表中使用。
y=[lambda x:x*x,2,3]
y[0](y[1])
4
y[0](y[2])
9
y[0]引用表达式,y[1]引进2,y[2]引用3,y相当于函数的名字。
#3 通过代码实现将字符转化为ASCII编码值。
list(map(lambda x :ord(x)+10,"FishC"))
[80, 115, 125, 114, 77]
总上,通过匿名函数可以实现比较简单的功能。