点击蓝字
关注我们
【Python小白速通】匿名函数?说白了就是"代码界的临时工"!
咱之前唠的函数都是"正儿八经的正式工"——有名字、有固定岗位、能反复用,比如`make_coffee()`、`calc_milk_tea_price()`。但有时候代码只想"临时干个小活",比如算个简单的加法、排个序,专门定义个函数太麻烦,这时候**匿名函数**就登场了!
简单说,匿名函数就是"没名字的临时工",用完就走,不用占"函数名册",主打一个"轻量、快捷、不啰嗦",像街边扫码领小样的临时摊位,领完就撤,不用专门租店面~
一、先唠透:啥是匿名函数?(纯人话版)
先掰碎了说,不整专业术语:
- 普通函数:有名字、能复用的"正式工",比如`def add(a,b): return a+b`,登记在册,想用工随时喊;
- 匿名函数:没名字、一次性的"临时工",用`lambda`关键字创建,比如`lambda a,b: a+b`,干完就删,不用留名;
- 核心特点:只能干"简单活"(一行代码搞定),不能写复杂逻辑,适合临时救急。
举个栗子:你想算10+20,要是写个普通函数`def add(a,b): return a+b`,就像为了拧一颗螺丝,专门找个全职维修工;用匿名函数`lambda a,b: a+b`,就像找个路过的师傅顺手拧一下,省时又省力~
二、实操!4种匿名函数用法,小白也能秒会
匿名函数核心格式:`lambda 参数: 表达式`(参数是"干活的原料",表达式是"要干的活"),咱从最简单的开始,代码都标了"人话注释",复制就能跑~
姿势1:最基础的匿名函数(临时算个数版)
适合一次性算个简单结果,用完就扔,不用定义正式函数!
python
#创建匿名函数:计算两个数相加(没名字,直接赋值给变量方便调用)
add = lambda a, b: a + b
#调用"临时工"干活:算10+20
result = add(10, 20)
print(f"✅ 10+20={result}")
#更"临时"的用法:不用变量存,直接用(用完就没)
print(f"✅ 5*8={ (lambda x,y: x*y)(5,8) }")
👉 运行结果:
✅ 10+20=30
✅ 5*8=40
姿势2:匿名函数+列表排序(实用款)
这是匿名函数最常用的场景!比如给列表里的"奶茶套餐"按价格排序,不用写复杂排序规则~
python
#列表里是奶茶套餐(名字,价格)
milk_tea = [("珍珠奶茶", 18), ("芋泥奶茶", 20), ("柠檬水", 10)]
#用匿名函数指定"按价格排序"(key=lambda x: x[1] 表示按第二个元素排序)
milk_tea_sorted = sorted(milk_tea, key=lambda x: x[1])
print(f"✅ 按价格从低到高排序:{milk_tea_sorted}")
👉 运行结果:
✅ 按价格从低到高排序:[('柠檬水', 10), ('珍珠奶茶', 18), ('芋泥奶茶', 20)]
姿势3:匿名函数+过滤(挑东西版)
比如从一堆数字里挑出"大于10的数",用匿名函数当过滤规则,超省事!
python
#一堆数字:奶茶的各种加料费
add_fee = [3, 5, 8, 12, 15, 7]
#用filter+匿名函数,挑出大于10的加料费
high_fee = list(filter(lambda x: x > 10, add_fee))
print(f"✅ 大于10元的加料费:{high_fee}")
👉 运行结果:
✅ 大于10元的加料费:[12, 15]
姿势4:匿名函数当函数参数(进阶版)
把匿名函数传给其他函数当参数,比如给列表里的每个数"加5",用map+匿名函数:
python
#一堆数字:奶茶的基础价
base_price = [15, 18, 20]
#用map+匿名函数,给每个基础价加5元(活动加价)
new_price = list(map(lambda x: x + 5, base_price))
print(f"✅ 加价后的奶茶价:{new_price}")
👉 运行结果:
✅ 加价后的奶茶价:[20, 23, 25]
三、避坑小彩蛋:新手最容易踩的3个坑
1. 只能写一行代码:匿名函数的表达式必须"一行搞定",不能写if-else多行逻辑、循环!比如`lambda a,b: if a>b: return a else: return b`会报错,想写条件只能用"三元表达式":`lambda a,b: a if a>b else b`(像压缩饼干,只能缩成一行);
2. 别当正式工用:匿名函数适合临时活,要是逻辑复杂、需要反复用,千万别硬用!比如用lambda写"算打车费(含起步价、超公里加价)",代码又乱又难维护,不如写普通函数;
3. 别纠结"名字":虽然可以把lambda赋值给变量(比如`add = lambda a,b: a+b`),但这失去了匿名的意义,不如直接写`def add(a,b): return a+b`,代码更易读~
四、匿名函数vs普通函数(大白话对比)
| 特点 | 普通函数(正式工)| 匿名函数(临时工)|
|------|------------------|------------------|
| 有没有名字 | 有(def 函数名)| 无(lambda创建)|
| 代码长度 | 可多行,支持复杂逻辑 | 只能一行,仅支持简单逻辑 |
| 复用性 | 高,可反复调用 | 低,适合一次性使用 |
| 可读性 | 高,代码清晰 | 低,复杂场景易看不懂 |
总结
1. Python匿名函数是用`lambda 参数: 表达式`创建的"临时工",无名字、仅一行代码、适合简单临时任务;
2. 匿名函数最常用场景是列表排序、过滤、映射(sorted/filter/map),别用来写复杂逻辑;
3. 记住"一行逻辑、一次性使用、别替代普通函数",就能用对匿名函数。

扫码关注我们
知识奇妙世界