lambda
函数在 Python 中是一种匿名函数,也就是说它是一种没有名称的函数。lambda
函数可以在需要一个简单函数的地方快速定义,并且它们通常用于短小的函数或回调函数中。
语法
lambda
关键字后面跟一个参数列表,再后面是一个冒号和一个表达式,语法如下:
1 |
lambda 参数1, 参数2, ...: 表达式 |
lambda
函数可以有任意数量的参数,但只能有一个表达式。计算结果会自动返回。
示例
示例1:基本用法
1 2 3 4 5 6 |
# 定义一个 lambda 函数,它计算两个数的和 sum_func = lambda x, y: x + y # 调用 lambda 函数 result = sum_func(3, 5) print(result) # 输出 8 |
示例2:在列表排序中使用
1 2 3 4 5 6 7 |
# 有一个包含元组的列表 data = [(1, 'apple'), (2, 'banana'), (3, 'cherry'), (4, 'date')] # 按照元组的第二个元素(水果名称)排序 sorted_data = sorted(data, key=lambda x: x[1]) print(sorted_data) # 输出 [(1, 'apple'), (2, 'banana'), (3, 'cherry'), (4, 'date')] |
示例3:在 map
函数中使用
1 2 3 4 5 6 7 |
# 有一个数字列表 numbers = [1, 2, 3, 4, 5] # 使用 lambda 函数将每个数字平方 squared_numbers = list(map(lambda x: x**2, numbers)) print(squared_numbers) # 输出 [1, 4, 9, 16, 25] |
示例4:在 filter
函数中使用
1 2 3 4 5 6 7 |
# 有一个数字列表 numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 使用 lambda 函数过滤出偶数 even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # 输出 [2, 4, 6, 8, 10] |
注意事项
lambda
函数只能包含一个表达式,不能包含多行语句。lambda
函数的用途是创建简单的、一次性使用的函数,如果需要定义复杂的函数,最好使用def
关键字。
示例总结
lambda
函数在需要简单函数的地方非常有用,例如:
- 作为短小的回调函数。
- 在排序、过滤等函数中作为关键函数。
- 在任何需要简单函数而不想正式定义函数的场合。
这种匿名函数可以帮助你编写更简洁、更易读的代码。