例:
g = lambda x:x+1
g(1)
>>>2
g(2)
>>>3
也可以 lambda x:x+1(1) 这样用
实际上lambda是匿名函数,函数入口是x,函数体是x+1
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
print filter(lambda x: x % 3 == 0, foo)
>>>[18, 9, 24, 12, 27]
print [x for x in foo if x % 3 == 0]
>>>[18, 9, 24, 12, 27]
lambda 定义了一个匿名函数
lambda 并不会带来程序运行效率的提高,只会使代码更简洁。
如果可以使用for…in…if来完成的,坚决不用lambda。
如果使用lambda,lambda内不要包含循环,如果有,建议定义函数来完成,使代码获得可重用性和更好的可读性。
总结:lambda 是为了减少单行函数的定义而存在的。