lambda是什么
lambda,估计大家听到这个词就以为是高中数学所听到的λ,但今天我们要给大家讲的是python编程语言中的lambda表达式。那lambda表达式在python中又是什么意思呢?
在python中,lambda表达式又名为匿名函数,顾名思义,lambda函数的特征就是不需要去特意定义一个函数的名称。说这么多,都是纸上谈兵,我们用vs code来演示一下
譬如,在这个函数里面,我们定义了一个简单的运算逻辑,这个函数名为calculate,这个函数我们需要输入x和y两个变量,计算逻辑为(x*y)/(x+y)。
倘若我们用lambda表达式来改写一下这个函数表达式,我们就可以得到上面这个lambda的式子。
我们来详细讲讲这个lambda怎么用以及lambda用在哪里
lambda x,y : x和y之间的表达式
在:的左边是函数所需要输入的参数,在:的右边是函数的表达式,在lambda表达式和我们常见的定义函数有所不同,lambda的形式较为简单,也不需要输入return这个语符。
把lambda表达式赋值给变量
运行结果如下
它这里是把我们的lambda表达式存在我们内存里面特定的位置。
我们调用一下这个lambda函数,输入1和2这两个参数。
运行结果:
什么时候能用lambda
- 程序只会执行一次,而且不需要定义函数的名称
- 优点:使用lambda表达式方便,节省内存
- 某些函数必须以函数作为参数,但函数简单且只在一处使用
譬如
a1=[0,1,2,3,4,5,6,7,8,9,10]
a2=[item for item in filter(lambda x: x>3,a1)]
print(a2)
运行结果如下:
filter为python的内置函数,用于过滤序列,过滤掉不符合我们要求的元素。filter函数的第一个参数需要传入另一个函数,传入的函数用作过滤条件,满足的返回“true”,不满足的返回“false”。而在这个函数里面我们使用lambda表达式就会使得我们整个程序更加简洁。