python的lambda表达式
内容
Python 的 lambda
表达式与 C++ 的 lambda 在概念上类似(定义匿名函数),但语法和使用场景有显著差异。以下是详细的对比和 Python 的用法指南:
1. 基础语法对比
语言 | 示例 | 说明 |
---|---|---|
C++ | auto f = [](int x) -> int { return x*2; }; |
需要明确捕获列表 [] 、参数类型、返回类型,函数体可包含多行逻辑。 |
Python | f = lambda x: x * 2 |
无类型声明,单行表达式自动返回结果,无法包含复杂逻辑(如循环、if-else 多分支)。 |
2. Python Lambda 核心用法
(1) 基本定义
# 语法:lambda 参数: 表达式
add = lambda a, b: a + b
print(add(3, 5)) # 输出:8
(2) 作为参数传递(如高阶函数)
# 配合 map 对列表元素加倍
numbers = [1, 2, 3]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled) # 输出:[2, 4, 6]# 配合 sorted 按字符串长度排序
words = ["apple", "kiwi",