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

相关推荐
mortimer2 小时前
安装NVIDIA Parakeet时,我遇到的两个Pip“小插曲”
python·github
@昵称不存在2 小时前
Flask input 和datalist结合
后端·python·flask
赵英英俊3 小时前
Python day25
python
东林牧之3 小时前
Django+celery异步:拿来即用,可移植性高
后端·python·django
何双新3 小时前
基于Tornado的WebSocket实时聊天系统:从零到一构建与解析
python·websocket·tornado
AntBlack4 小时前
从小不学好 ,影刀 + ddddocr 实现图片验证码认证自动化
后端·python·计算机视觉
凪卄12134 小时前
图像预处理 二
人工智能·python·深度学习·计算机视觉·pycharm
巫婆理发2224 小时前
强化学习(第三课第三周)
python·机器学习·深度神经网络
seasonsyy4 小时前
1.安装anaconda详细步骤(含安装截图)
python·深度学习·环境配置
半新半旧5 小时前
python 整合使用 Redis
redis·python·bootstrap