Python lambda 函数详细介绍
在 Python 中,lambda 函数是一种 匿名函数(没有名称的函数),用于创建简短的单行函数。lambda 关键字允许你在不定义正式函数的情况下,快速创建小型函数。
lambad 函数的语法
1
| lambda 参数1, 参数2, ...: 表达式
|
特点:
只能包含 一个表达式,并且 不能包含赋值操作(如 =)。
适用于 简单 的计算或数据转换。
返回值 是表达式的计算结果。
案例: 计算和
1 2 3
| def add(x, y): return x + y
|
使用 lambda函数
lambdb 函数的基本实例
简单的减法
1 2
| subtraction = lambda x,y:y-x print(subtraction(3,5))
|
平方计算
1 2
| square = lambda x: x ** 2 print(square(4))
|
判断奇偶数
1 2 3
| is_even = lambda x: x % 2 == 0 print(is_even(10)) print(is_even(7))
|
lambda 与map()、fiter()、soretd() 结合的高阶使用
使用map() 进行列表转换
1 2 3
| number = [1,2,3,4,5] squared = list(map(lambda x:x**2, numbers)) print(squared)
|
使用filter()进行列表筛选
filter() 用于筛选符合条件的元素
1 2 3
| numbers = [1, 2, 3, 4, 5, 6] evens = list(filter(lambda x: x % 2 == 0, numbers)) print(evens)
|
使用sorted()进行自定义排序
1 2 3
| students = [("Alice", 85), ("Bob", 75), ("Charlie", 90)] students_sorted = sorted(students, key=lambda x: x[1]) print(students_sorted)
|
lambda 在reduce() 中的高阶应用
可以看 https://8888666.top/2024/09/04/pythonreduce%E5%87%BD%E6%95%B0/ 我之前写的文章
reduece() 进行累积计算
1 2 3 4 5
| from functools import reduce
numbers = [1, 2, 3, 4, 5] product = reduce(lambda x, y: x * y, numbers) print(product)
|
lambda 在 if-else 表达式中的应用
if-else 中应用
1 2
| max_num = lambda x, y: x if x > y else y print(max_num(3, 8))
|
lambda 作为函数参数
lambda 可以作为函数的参数,用于动态定义逻辑
1 2 3 4 5
| def apply_function(func, value): return func(value)
print(apply_function(lambda x: x ** 2, 5))
|
lambda 的局限性
虽然 lambda 非常方便,但它有一些局限性:
1.只能包含单个表达式,无法写多行代码。
2.不能直接赋值变量,如 lambda x: y = x + 1 是错误的。
3.可读性差,对于复杂逻辑,普通 def 函数更清晰。
总结
lambda 是一种简洁的匿名函数,适用于简单操作,但不要滥用复杂逻辑