匿名函数的关键字为 lambda 它有以下几个特点:
1.它是一个表达式,不是一个语句.它相对于def 的优势也出于此.
a.它能够出现在def 不能出现的地方例如: list和函数调用的参数中.
b.它会返回一个函数对象, 你可以给这个函数对象赋值一个引用,也可以不赋值.
2.它相对于def 的劣势:
它的功能要比def 小的多.
>>> f = lambda x,y,z:x+y+z
>>> f(1,2,3)
6
既然已经有了def 为什么还要使用lambda呢?
1.它简单,此特性一目了然.
2.它可以在回调处理器中使用(不太明白,术语太专业)
>>> L=[lambda x:x**2,
lambda x:x**3,
lambda x:x**4]
>>> for f in L:
print(f(2))
4
8
16
有一个这样的需求,更新counters中所有的数字.你可以这样写:
>>> counters=[1,2,3,4]
>>> update = []
>>> for x in counters:
update.append(x+10)
>>> update
[11, 12, 13, 14]
>>> list(map((lambda x:x+10),counters))
[11, 12, 13, 14]
明显是要简洁许多,在python中许多内置函数都可以这样使用例如:filter,reduce