1、语法
lambda arguments: expression
执行该表达式并返回结果。
*args
)、可变关键字参数(**kwargs
)。例如:
在参数a
上添加10,然后返回结果:
x = lambda a : a + 10
print(x(5))
Lambda函数可以接受任意数量的参数:
例如:
将参数a
与参数b
相乘,并返回结果:
x = lambda a, b : a * b
print(x(5, 6))
例如:
汇总参数a
,b
和c
并返回结果:
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))
2、使用Lambda函数的好处
将lambda
用作另一个函数中的匿名函数时,可以更好地使用lambda
函数。
假设有一个接受一个参数的函数定义,该参数将与一个未知数相乘:
def myfunc(n):
return lambda a : a * n
使用该函数定义可创建一个始终使您发送的数字翻倍的函数:
例如:
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
或者,使用相同的函数定义,使一个函数总是三倍的数字你发送:
例如:
def myfunc(n):
return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))
或者,在同一程序中使用相同的函数定义来创建两个函数:
例如:
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))
在短时间内需要使用匿名函数时,请使用lambda函数。
1)单个参数的Lambda表达式
# 普通函数形式
def square(x):
return x * x
# Lambda表达式形式
square_lambda = lambda x: x * x
print(square(5)) # 输出:25
print(square_lambda(5)) # 输出:25
2)多个参数的Lambda表达式:
# 普通函数形式
def add(x, y):
return x + y
# Lambda表达式形式
add_lambda = lambda x, y: x + y
print(add(3, 5)) # 输出:8
print(add_lambda(3, 5)) # 输出:8
3)在高阶函数中使用Lambda表达式:
Lambda表达式通常用于高阶函数中,如map()
、filter()
、sorted()
等,可以使代码更简洁。
# 使用map()函数将列表中的每个元素求平方
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x * x, numbers))
print(squared) # 输出:[1, 4, 9, 16, 25]
# 使用filter()函数过滤列表中的偶数
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens) # 输出:[2, 4]