欢迎访问宙启技术站
智能推送

Python 中的 lambda 函数:如何定义和使用?

发布时间:2023-05-20 17:56:00

Lambda 函数也称为匿名函数或闭包函数,是 Python 语言中一种特殊的语法结构。与 def 关键字定义的函数不同,lambda 函数定义的函数没有函数名,且仅包含一行语句。Lambda 函数通常用于在需要函数作为参数传递的场合,如 sorted()、map()、filter()、reduce() 等。

定义 Lambda 函数的语法格式为:lambda 参数列表: 表达式。

参数列表可以为空或包含任意数量的参数,多个参数之间使用逗号(,)分隔。表达式是一个单行语句,通过该语句返回函数的结果。Lambda 函数不需要 return 关键字,返回值由表达式的结果确定。

示例一:

# 定义一个简单的 lambda 函数,将传入的参数加 1
add_one = lambda x: x + 1

# 使用 lambda 函数
print(add_one(2))
# 输出:3

上面的代码定义了一个名为 add_one 的 lambda 函数,该函数接收一个参数 x,将其加 1 并返回结果。可以使用 add_one(2) 调用该函数,将参数 2 传递给它并获得返回结果 3

示例二:

# 定义一个接收两个参数的 lambda 函数,将它们相加
addition = lambda x, y: x + y

# 使用 lambda 函数
print(addition(2, 3))
# 输出:5

上面的代码定义了一个名为 addition 的 lambda 函数,该函数接收两个参数 xy,将它们相加并返回结果。可以使用 addition(2, 3) 调用该函数,将两个参数分别传递给它并获得返回结果 5

示例三:

# 使用 lambda 函数作为 map() 的参数
numbers = [1, 2, 3, 4, 5]
squares = map(lambda x: x ** 2, numbers)
print(list(squares))
# 输出:[1, 4, 9, 16, 25]

上面的代码定义了一个名为 squares 的 map 对象,使用 lambda 函数作为参数将列表 numbers 中的每个元素求平方。可以使用 list(squares) 获得结果列表 [1, 4, 9, 16, 25]

如上所述,Lambda 函数最常用于函数式编程、匿名函数和迭代器。通过使用 Lambda 函数,我们可以更加方便地创建一些简单的、重复使用的函数,并在代码中更加灵活地使用它们。但是,因为 Lambda 函数只包含一行语句,所以使用 Lambda 函数的功能受到了一些限制。有时我们需要定义更加复杂的函数,这时使用 def 关键字定义函数会更加适合。