lambda 函数是 Python 中的匿名函数。匿名函数是指没有声明函数名称的函数。尽管它们在语法上看起来不同,lambda 函数的行为方式与使用 def 关键字声明的一般函数相同。格式如下:
lambda arguments: expression
lambda 关键字可以用来创建一个 lambda 函数,紧跟其后的是参数列表和用冒号分割开的单个表达式。例如,lambda x: x * x 是将任何输入的数相乘,而 lambda x, y: x+y 是计算两个数字的和。
用处
1. 直接赋给一个变量,然后再像一般函数那样调用(不建议使用)
Test01 = lambda x,y,z : x*y*z
print(Test01(2,3,4))
也可以在函数后面直接传递实参
print((lambda x,y,z : x*y*z)(1,2,3))
2. 将lambda函数作为参数传递给其他函数比如说结合 map、filter、sorted、reduce 等一些 Python 内置函数使用。
与 map 函数结合使用
list_01 = [1,3,5,6]
list_02 = [3,4,7,8]
b = map(lambda x,y: x + y, list_01,list_02)
print(list(b))
与 sorted 函数结合使用
a=[('b',3),('a',2),('d',4),('c',1)]
//按照第一个元素排序
sorted(a,key = lambda x:x[0])
>>>>>[('a',2),('b',3),('c',1),('d',4)]
//按照第二个元素排序
sorted(a,key = lambda x:x[1])
>>>>>[('c',1),('a',2),('b',3),('d',4)]
与 reduce 函数结合使用
from functools import reduce
a = [1, 2, 3, 4]
product_a = reduce(lambda x, y: x * y, a)
print(product_a) # 24,相当于1*2*3*4
sum_a = reduce(lambda x, y: x + y, a)
print(sum_a) # 10,相当于1+2+3
lambda 函数的使用注意: