- Python
lambda教程 python 0基础 通俗易懂
- 2025-4-12 13:48:58 @
1. 什么是 lambda 函数
在 Python 里,lambda
函数也被叫做匿名函数,它属于一种小型的、一次性使用的函数。和常规函数不同,lambda
函数无需使用 def
关键字来定义,也不用为其指定一个具体的函数名。它主要用于创建简单的函数,能让代码变得更加简洁。
2. 基本语法
lambda
函数的基本语法如下:
lambda arguments: expression
这里的 arguments
代表函数的参数,可以是零个或者多个参数,参数之间用逗号分隔;expression
则是函数要执行的表达式,该表达式的计算结果会作为函数的返回值。
3. 简单示例
下面通过几个简单的例子来理解 lambda
函数的使用。
示例 1:计算两个数的和
# 使用 lambda 函数定义一个求和函数
add = lambda x, y: x + y
# 调用这个函数
result = add(3, 5)
print(result) # 输出 8
在这个例子中,lambda x, y: x + y
定义了一个匿名函数,它接收两个参数 x
和 y
,并返回它们的和。接着把这个匿名函数赋值给变量 add
,之后就可以像调用普通函数一样调用 add
函数。
示例 2:计算一个数的平方
# 使用 lambda 函数定义一个求平方的函数
square = lambda x: x ** 2
# 调用这个函数
result = square(4)
print(result) # 输出 16
这里 lambda x: x ** 2
定义了一个匿名函数,它接收一个参数 x
,并返回 x
的平方。然后把这个匿名函数赋值给变量 square
并调用。
4. lambda
函数的使用场景
作为参数传递给其他函数
lambda
函数常被当作参数传递给其他函数,例如 sorted()
、map()
、filter()
等。
示例 3:使用 sorted()
函数对列表中的元素按某个规则排序
# 定义一个包含元组的列表
students = [('Alice', 20), ('Bob', 18), ('Charlie', 22)]
# 使用 lambda 函数按年龄对学生进行排序
sorted_students = sorted(students, key=lambda student: student[1])
print(sorted_students)
# 输出 [('Bob', 18), ('Alice', 20), ('Charlie', 22)]
在这个例子中,sorted()
函数的 key
参数接收一个函数,该函数用于指定排序的规则。这里使用 lambda
函数 lambda student: student[1]
表示按照每个元组的第二个元素(即年龄)进行排序。
示例 4:使用 map()
函数对列表中的每个元素进行操作
# 定义一个列表
numbers = [1, 2, 3, 4]
# 使用 map() 函数和 lambda 函数计算每个元素的平方
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # 输出 [1, 4, 9, 16]
map()
函数会对 numbers
列表中的每个元素应用 lambda
函数 lambda x: x ** 2
,并将结果存储在一个新的可迭代对象中,最后使用 list()
函数将其转换为列表。
示例 5:使用 filter()
函数过滤列表中的元素
# 定义一个列表
numbers = [1, 2, 3, 4, 5, 6]
# 使用 filter() 函数和 lambda 函数过滤出偶数
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # 输出 [2, 4, 6]
filter()
函数会根据 lambda
函数 lambda x: x % 2 == 0
的结果过滤 numbers
列表中的元素,只保留那些使 lambda
函数返回 True
的元素,最后将结果转换为列表。
5. 注意事项
- 功能简单:
lambda
函数适合实现简单的功能,若要实现复杂的逻辑,建议使用普通的def
函数。 - 只能有一个表达式:
lambda
函数只能包含一个表达式,不能包含多条语句。
通过以上内容,你应该对 Python 中的 lambda
函数有了基本的了解,可以在合适的场景中运用它来简化代码。