🚀 Python lambda
函数详解:写给初学者的极简教程
在 Python 中,我们常常会遇到一种特殊的函数 ------ lambda
。
它不像普通的函数那样用 def
来定义,而是一个匿名函数,适合处理一些"一次性"的简单逻辑。
本文将带你从零了解 lambda
的定义、用法、场景及注意事项。
📌 什么是 lambda
函数?
lambda
是 Python 中的匿名函数,常用于需要临时函数对象的场景,比如排序、过滤、映射等。
python
lambda 参数1, 参数2, ..., 参数N: 表达式
lambda
关键字表示这是一个匿名函数。- 冒号后是一个表达式(不是语句),它的值就是返回值。
lambda
会自动返回这个表达式的结果。
🧪 入门示例
python
# 普通写法
def add(x, y):
return x + y
# lambda 写法
add = lambda x, y: x + y
print(add(3, 5)) # 输出:8
💡 常见使用场景
✅ 1. sorted()
自定义排序
python
students = [("Alice", 85), ("Bob", 90), ("Charlie", 80)]
# 按成绩排序(升序)
sorted_students = sorted(students, key=lambda x: x[1])
print(sorted_students)
✅ 2. map()
做批量转换
python
nums = [1, 2, 3, 4]
squares = list(map(lambda x: x ** 2, nums))
print(squares) # [1, 4, 9, 16]
✅ 3. filter()
条件过滤数据
python
nums = [1, 2, 3, 4, 5, 6]
even_nums = list(filter(lambda x: x % 2 == 0, nums))
print(even_nums) # [2, 4, 6]
✅ 4. 一次性回调函数(如按钮事件)
python
import tkinter as tk
btn = tk.Button(text="点击", command=lambda: print("点击了按钮"))
btn.pack()
适用于临时逻辑,无需额外定义函数。
⚠️ 注意事项
注意点 | 说明 |
---|---|
表达式 | lambda 后面只能写表达式,不能写多行语句 |
适用范围 | 适合短小、一次性使用的函数 |
可读性 | 过度使用 lambda 可能会让代码难懂,需权衡 |
🧩 实战技巧:多级排序
当我们排序时遇到主键相同时,可加入备用排序键:
python
students = [("Alice", 85), ("Bob", 90), ("Charlie", 85)]
# 成绩一样时按名字排序
sorted_students = sorted(students, key=lambda x: (x[1], x[0]))
📷 多级排序图示:\
🎯 总结
lambda
是 Python 中的一个小巧精悍的函数表达式工具,适合用于 map、filter、sorted、GUI 回调等