苦练Python第15天:Lambda函数------Python的匿名一行杀器
作者:Rahul Gupta
译者:倔强青铜三
前言
大家好,我是倔强青铜三 。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!
欢迎来到 100天Python挑战 的第15天!
今天,我们聊聊 lambda函数 ------一种短小精悍、无需命名的"一行流"函数。
它能在 map
、filter
、sorted
等场景中大放异彩,也能让你的代码瞬间优雅。
今日速览
- lambda函数是什么
- 语法速记
- 与
def
的差异 - 搭配高阶函数实战
- 使用场景与避坑指南
🧠 什么是 Lambda 函数?
lambda 函数是没有名字的匿名函数 ,只能包含一个表达式 ,却能接收任意数量的参数。
一句就够:
python
lambda 参数: 表达式
🔧 示例 1:基础平方
python
square = lambda x: x * x
print(square(5)) # 25
等价于:
python
def square(x):
return x * x
🎯 示例 2:多参数加法
python
add = lambda a, b: a + b
print(add(3, 7)) # 10
⚙️ 高阶搭档:map
、filter
、sorted
搭配 map
python
numbers = [1, 2, 3, 4]
squares = list(map(lambda x: x**2, numbers))
print(squares) # [1, 4, 9, 16]
搭配 filter
python
nums = [5, 12, 17, 18, 24, 3]
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens) # [12, 18, 24]
搭配 sorted
(自定义 key)
python
students = [("John", 88), ("Alice", 92), ("Bob", 75)]
sorted_students = sorted(students, key=lambda x: x[1], reverse=True)
print(sorted_students)
# [('Alice', 92), ('John', 88), ('Bob', 75)]
🧪 实战:一行小费计算器
python
calculate_tip = lambda bill, percent: round(bill * percent / 100, 2)
print(calculate_tip(200, 10)) # 20.0
🤔 何时用 Lambda?
✅ 推荐场景
- 仅需一行逻辑的临时函数
- 作为高阶函数的参数
- 不想污染命名空间
🚫 避免场景
- 逻辑复杂需多行
- 需要调试或复用
- 阅读性大幅下降
⚠️ 常见踩坑
- 试图写多行:
lambda
只支持单个表达式 - 滥用:可读性变差
- 与
def
混淆:复杂逻辑请用正式函数
🔁 lambda
vs def
速查表
特性 | lambda | def |
---|---|---|
名称 | 匿名 | 具名 |
长度 | 一行 | 多行 |
复用性 | 一般不重用 | 可重用 |
适用场景 | 快速短小逻辑 | 完整函数 |
🧠 今日复盘
- lambda 语法:
lambda 参数: 表达式
- 与
map
、filter
、sorted
搭档效率翻倍 - 小费、排序等场景一行搞定
- 记得只在简单场景使用,保持代码可读
最后感谢阅读!欢迎关注我,微信公众号 :
倔强青铜三
。欢迎点赞
、收藏
、关注
,一键三连!!!