Python lambda函数

Python lambda 函数详细介绍

在 Python 中,lambda 函数是一种 匿名函数(没有名称的函数),用于创建简短的单行函数。lambda 关键字允许你在不定义正式函数的情况下,快速创建小型函数。

lambad 函数的语法

1
lambda 参数1, 参数2, ...: 表达式

特点:
只能包含 一个表达式,并且 不能包含赋值操作(如 =)。
适用于 简单 的计算或数据转换。
返回值 是表达式的计算结果。

案例: 计算和

1
2
3
def add(x, y):
return x + y

使用 lambda函数

1
lambda x,y:x+y

lambdb 函数的基本实例

简单的减法

1
2
subtraction = lambda x,y:y-x
print(subtraction(3,5)) # 输出2

平方计算

1
2
square = lambda x: x ** 2
print(square(4)) # 输出: 16

判断奇偶数

1
2
3
is_even = lambda x: x % 2 == 0
print(is_even(10)) # 输出: True
print(is_even(7)) # 输出: False

lambda 与map()、fiter()、soretd() 结合的高阶使用

使用map() 进行列表转换

1
2
3
number = [1,2,3,4,5]
squared = list(map(lambda x:x**2, numbers))
print(squared) # 输出[1,2,9,16,25]

使用filter()进行列表筛选

filter() 用于筛选符合条件的元素

1
2
3
numbers = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens) # 输出: [2, 4, 6]

使用sorted()进行自定义排序

1
2
3
students = [("Alice", 85), ("Bob", 75), ("Charlie", 90)]
students_sorted = sorted(students, key=lambda x: x[1]) # 按成绩排序
print(students_sorted) # 输出: [('Bob', 75), ('Alice', 85), ('Charlie', 90)]

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) # 输出: 120

lambda 在 if-else 表达式中的应用

if-else 中应用

1
2
max_num = lambda x, y: x if x > y else y
print(max_num(3, 8)) # 输出: 8

lambda 作为函数参数

lambda 可以作为函数的参数,用于动态定义逻辑

1
2
3
4
5
def apply_function(func, value):
return func(value)

print(apply_function(lambda x: x ** 2, 5)) # 输出: 25

lambda 的局限性

虽然 lambda 非常方便,但它有一些局限性:

1.只能包含单个表达式,无法写多行代码。
2.不能直接赋值变量,如 lambda x: y = x + 1 是错误的。
3.可读性差,对于复杂逻辑,普通 def 函数更清晰。

总结

lambda 是一种简洁的匿名函数,适用于简单操作,但不要滥用复杂逻辑


Python lambda函数
https://dreamshao.github.io/2025/03/18/lambda函数/
作者
Yun Shao
发布于
2025年3月18日
许可协议