Python Lambda函数
什么是Lambda函数?
Lambda函数是Python中的一种特殊函数,也被称为匿名函数。与普通函数不同,Lambda函数不需要使用def
关键字定义,也不需要指定函数名。它们是在需要一个函数,但又不想正式定义它的场景下的便捷工具。
Lambda函数的基本语法如下:
lambda arguments: expression
lambda
是Python的关键字,用来定义匿名函数arguments
是函数的参数,可以有多个,用逗号分隔expression
是函数的返回值表达式,只能有一条表达式
备注
Lambda函数被设计为单行表达式,因此无法包含复杂的逻辑或多行代码。
Lambda函数的基本用法
简单示例
让我们先来看一个简单的例子,创建一个计算平方的lambda函数:
# 使用普通函数
def square(x):
return x * x
# 使用lambda函数
square_lambda = lambda x: x * x
# 测试两个函数
print(square(5)) # 输出: 25
print(square_lambda(5)) # 输出: 25
Lambda函数在这个例子中与普通函数完全等价,但语法更简洁。
多参数Lambda函数
Lambda函数可以接受多个参数:
# 两个参数的lambda函数
add = lambda x, y: x + y
print(add(3, 5)) # 输出: 8
# 三个参数的lambda函数
multiply = lambda x, y, z: x * y * z
print(multiply(2, 3, 4)) # 输出: 24
没有参数的Lambda函数
Lambda函数也可以不接受任何参数:
# 无参数的lambda函数
say_hello = lambda: "Hello World!"
print(say_hello()) # 输出: Hello World!
Lambda函数的高级用法
在内置函数中使用Lambda
Lambda函数经常与Python的内置函数如map()
、filter()
和sorted()
等一起使用:
与map()函数结合
map()
函数将一个函数应用于可迭代对象的每个元素:
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared) # 输出: [1, 4, 9, 16, 25]
与filter()函数结合
filter()
函数使用一个函数来过滤可迭代对象中的元素:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # 输出: [2, 4, 6, 8, 10]