Python lambda函数用法

378 阅读1分钟

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 函数的使用注意:

cloud.tencent.com/developer/a…