📜  python中的lambda(1)

📅  最后修改于: 2023-12-03 15:19:27.067000             🧑  作者: Mango

Python中的Lambda

在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))

以上代码输出结果都是57

总结

在Python中,lambda函数可以有效地简化代码,将多行代码压缩成单行。我们可以在需要快速编写临时函数的场合下使用它。除了作为匿名函数,还可以作为参数传递和返回值使用。