海岛奇兵靠谱助手安装包
367.43 MB · 2025-11-13
匿名函数使用关键字 lambda 定义,其基本语法如下:
lambda 参数列表: 表达式
这里需要注意几点:
lambda 定义的函数只能包含一个表达式,不能有多行语句。return 关键字,表达式的结果会被自动返回。举个例子:
add = lambda x, y: x + y
print(add(3, 5)) # 输出:8
这段代码等价于:
def add(x, y):
return x + y
Python 中有一些内置函数非常适合与 lambda 结合使用,比如 map()、filter()、sorted() 等。
示例1:map()
numbers = [1, 2, 3, 4]
squares = list(map(lambda x: x ** 2, numbers))
print(squares) # 输出:[1, 4, 9, 16]
示例2:filter()
nums = [1, 2, 3, 4, 5, 6]
even_nums = list(filter(lambda x: x % 2 == 0, nums))
print(even_nums) # 输出:[2, 4, 6]
示例3:sorted()
students = [("Alice", 85), ("Bob", 90), ("Charlie", 80)]
sorted_students = sorted(students, key=lambda x: x[1], reverse=True)
print(sorted_students)
# 输出:[('Bob', 90), ('Alice', 85), ('Charlie', 80)]
| 特性 | lambda 匿名函数 | 普通函数(def) |
|---|---|---|
| 定义方式 | lambda 参数: 表达式 | def 函数名(参数): |
| 是否有名字 | 否(可以通过变量引用) | 是 |
| 是否支持多行 | 否,只能写一行表达式 | 可以包含多行代码 |
| 使用场景 | 简短、临时逻辑 | 复杂、可重用逻辑 |
匿名函数的优势在于简洁,尤其是在需要函数作为参数传入时,不必为了简单逻辑单独定义一个函数。
尽管 lambda 很方便,但它也有一些局限:
因此,在实际项目中,当逻辑较复杂时应使用 def 定义函数;仅在需要简短逻辑时使用 lambda。
下面通过一个示例,看看 lambda 如何简化代码:
data = ["apple", "banana", "pear", "orange"]
sorted_data = sorted(data, key=lambda x: len(x))
print(sorted_data)
# 输出:['pear', 'apple', 'banana', 'orange']
在这里,我们通过匿名函数指定排序的依据是字符串的长度,而无需单独定义一个函数。
lambda 是 Python 提供的一种轻量级函数定义方式;lambda 参数: 表达式;map()、filter()、sorted() 等函数搭配使用;def 定义函数。结语:
匿名函数让 Python 代码更灵活、更简洁。掌握 lambda 的使用技巧,不仅能提升代码的优雅度,也能帮助你在编写函数式代码时更加得心应手。