📅  最后修改于: 2023-12-03 15:19:27.067000             🧑  作者: Mango
在Python中,lambda
函数也被称为匿名函数,它是一个小而简单的函数,不能进行复杂的操作,但是在某些场景下非常方便。
lambda
函数的基本语法如下:
lambda arguments: expression
带有一个或多个参数的lambda
函数可以使用逗号(,
)分隔。
下面是一些简单的示例。
# 普通的函数
def add(x, y):
return x + y
# Lambda函数
add_lambda = lambda x, y: x + y
print(add(2, 3))
print(add_lambda(2, 3))
以上代码输出结果都是5。
lambda
函数可用于多种场合,比如:
通常情况下,我们使用常规函数,但是在某些情况下,我们需要使用临时函数,这时lambda
函数是比较合适的选择。
# 普通函数
def square(x):
return x ** 2
# 使用lambda函数
square_lambda = lambda x: x ** 2
print(square(2))
print(square_lambda(2))
以上代码输出结果都是4。
在map()
和filter()
等函数中,lambda
函数可以用来定义临时的函数参数。
numbers = [1, 2, 3, 4, 5]
# 使用普通函数
def is_odd(x):
return x % 2 == 1
odd_numbers = filter(is_odd, numbers)
# 使用lambda函数
odd_numbers_lambda = filter(lambda x: x % 2 == 1, numbers)
print(list(odd_numbers))
print(list(odd_numbers_lambda))
以上代码输出结果都是[1, 3, 5]
。
lambda
函数也可以作为其他函数的返回值,用处很广。
# 普通函数
def make_incrementor(n):
def increment(x):
return x + n
return increment
# 使用lambda函数
def make_incrementor_lambda(n):
return lambda x: x + n
increment_by_3 = make_incrementor(3)
increment_by_5 = make_incrementor(5)
increment_by_3_lambda = make_incrementor_lambda(3)
increment_by_5_lambda = make_incrementor_lambda(5)
print(increment_by_3(2))
print(increment_by_5(2))
print(increment_by_3_lambda(2))
print(increment_by_5_lambda(2))
以上代码输出结果都是5
和7
。
在Python中,lambda
函数可以有效地简化代码,将多行代码压缩成单行。我们可以在需要快速编写临时函数的场合下使用它。除了作为匿名函数,还可以作为参数传递和返回值使用。