lambda表达式,本质上是一个匿名函数。执行一个lambda表达式会在内存中生成一个函数对象,并且返回该函数对象的引用。同def关键字定义的函数对象不同在于:
(1)def语句生成函数对象,并将对象引用赋值给函数名变量;lambda表达式只返回对象引用,是匿名的。
(2)def定义函数是一条完整的语句,不可以嵌入任何其他表达式中;而lambda是一个表达式,可以嵌入其他表达式中。正因为如此,lambda表达式只能有一个表达式跟在冒号后面。
lambda表达式的形式: lambda x, y, z: (x + y) / z;
代码举例如下:
import os, sysif __name__ == '__main__': ''' define tiny lambda expression ''' isOdd = lambda x: True if (x % 2) == 1 else False print(isOdd(7)) print(isOdd(10)) l = [1, 2, 3, 4, 5] print(filter(lambda x: True if (x % 2) == 1 else False, l))