Python Lambda 函数:匿名函数指南
了解如何在 Python 中编写匿名 lambda 函数。掌握使用 lambda 语法的 map()、filter() 和排序() 的函数式编程模式。
概述
在 Python 中,lambda 函数(也称为匿名函数)是一种小型、快速的单行函数,不需要标准的“def”关键字或正式名称。它们旨在临时、快速使用,允许您直接内联传递功能逻辑作为参数。这使您的代码更加紧凑,减少了编写仅在一个地方调用的成熟辅助函数的开销。
lambda 函数的语法很简单:“lambda 参数:表达式”。与标准函数不同,lambda 没有显式的“return”语句;表达式被自动求值并返回。此外,lambda 函数仅限于单个表达式,这意味着您无法在其中编写复杂的多行循环、赋值或条件块,从而强制执行干净的函数式方法。
Lambda 函数通常与内置高阶函数结合使用,例如“map()”(将函数应用于列表中的每个项目)、“filter()”(保留与条件匹配的项目)和“sorted()”(使用自定义排序键对项目进行排序)。例如,当使用 lambda 作为排序键时,按特定字典键对字典列表进行排序是轻而易举的事。了解 lambda 函数为您提供了编写干净的 Python 代码的重要工具。
代码和执行输出
使用内联匿名函数对复杂的字典列表进行排序并过滤数据集。
lambda_demo.py
在编辑器中尝试# Sorting using lambda
students = [
{"name": "Alice", "grade": 88},
{"name": "Bob", "grade": 95},
{"name": "Charlie", "grade": 90}
]
# Sort students by grade (descending)
sorted_students = sorted(students, key=lambda s: s["grade"], reverse=True)
print("Sorted students by grade:")
for student in sorted_students:
print(f"- {student['name']}: {student['grade']}")
# Filtering using lambda
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(f"\nOdd numbers: {odd_numbers}")端子输出
Sorted students by grade:
- Bob: 95
- Charlie: 90
- Alice: 88
Odd numbers: [1, 3, 5, 7]逐步实施
- 将自定义排序标准传递给 list.sort() 和sorted()
- 在数据科学管道中应用内联转换
- 在事件驱动的 UI 应用程序中定义快速回调
常见问题解答
lambda 函数可以接受多个参数吗?
是的,您可以定义多个用逗号分隔的参数,例如 lambda x, y: x + y。
为什么 lambda 函数被称为匿名函数?
因为它们是在没有名称绑定的情况下创建的,这与在本地命名空间中注册特定名称的 def 函数不同。
相关主题
推荐的 Python 资源
通过相关的交互式教程、备忘单和代码比较来扩展您的知识。