⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Python Lambda 与高阶函数

学习 lambda 表达式和 map/filter/reduce · 难度:进阶 · +15XP

Python Lambda 与高阶函数

Python Lambda 与高阶函数 — 匿名函数的力量

学习前的准备

打开终端,输入 python 进入交互式解释器。你需要理解 Python 函数的基本定义。

什么是 Lambda 函数?

Lambda 函数也叫“匿名函数”——一个没有名字的小型函数。它的核心特点是:只能包含一个表达式,不需要写 return(表达式的结果自动返回)。

# 传统函数
def add(x, y):
    return x + y
print(add(3, 5))  # 8

# Lambda 等价写法 add_lambda = lambda x, y: x + y print(add_lambda(3, 5)) # 8

# 语法:lambda 参数1, 参数2, ... : 表达式

Lambda 的典型使用场景

# 排序——sorted() 的 key 参数
students = [
    {"name": "张三", "score": 85},
    {"name": "李四", "score": 92},
    {"name": "王五", "score": 78}
]
ranked = sorted(students, key=lambda s: s["score"], reverse=True)

# 按字符串长度排序 words = ["apple", "pie", "banana", "do"] words.sort(key=lambda w: len(w)) print(words) # ['do', 'pie', 'apple', 'banana']

高阶函数:map、filter、reduce

nums = [1, 2, 3, 4, 5]

# map:对每个元素执行相同操作 squared = list(map(lambda x: x ** 2, nums)) print(squared) # [1, 4, 9, 16, 25]

# filter:筛选符合条件的元素 evens = list(filter(lambda x: x % 2 == 0, nums)) print(evens) # [2, 4]

# reduce:归并计算 from functools import reduce total = reduce(lambda acc, x: acc + x, nums, 0) print(total) # 15

Lambda 的局限性

如果逻辑比较复杂(多行、多条语句),就应该老老实实写 def 函数。记住:如果一个 lambda 让你犹豫了 3 秒钟,那就用 def。

小结

Lambda 是“用完即弃”的小函数,语法是 lambda 参数: 表达式。它最常见的用途是作为 sorted、map、filter 等函数的 key 或处理函数。当逻辑简单到一行能表达时,上 lambda;当逻辑需要多行时,老老实实写 def。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 152 篇
0 完成
🔥 0