Python `lambda` 函数详解:写给初学者的极简教程

🚀 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 回调等

相关推荐
想会飞的蒲公英32 分钟前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
SeaTunnel1 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记1 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
CCPC不拿奖不改名2 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
Marst Code2 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook2 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
我的xiaodoujiao5 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
weixin_408099675 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
去码头整点薯条ing6 小时前
某当网登录滑块【协议+OCR】
爬虫·python·ocr
赶紧写完去睡觉7 小时前
Anaconda 创建虚拟环境与使用
python·pycharm·conda