当前位置: 首页 > news >正文

Python 匿名函数(lambda)举例

 

Python 匿名函数(lambda)举例

 
Python 的匿名函数lambda 关键字定义,没有函数名,语法简洁,适合快速定义简单的单行函数,常配合 map/filter/sorted 等函数使用。
 

1. 基础语法

# 格式:lambda 参数: 表达式
lambda x: x * 2  # 接收一个参数x,返回x的2倍
 
 

 

2. 实用举例

 

例 1:最简单的匿名函数

# 定义匿名函数并赋值给变量
double = lambda x: x * 2# 调用
print(double(5))   # 输出:10
print(double(10))  # 输出:20
 
 

例 2:多参数匿名函数 

# 两个参数:x + y
add = lambda x, y: x + y
print(add(3, 4))  # 输出:7# 三个参数:计算平均值
avg = lambda a, b, c: (a + b + c) / 3
print(avg(1, 2, 3))  # 输出:2.0
 
 

例 3:带条件判断的匿名函数 

# 判断数字是否为偶数
is_even = lambda x: x % 2 == 0
print(is_even(4))  # True
print(is_even(5))  # False# 三元运算:大于10返回"大",否则返回"小"
check = lambda x: "大" if x > 10 else "小"
print(check(15))  # 大
 
 

例 4:配合 sorted () 排序(最常用场景)

# 列表里是元组(姓名, 年龄),按年龄排序
people = [("张三", 20), ("李四", 18), ("王五", 25)]# 匿名函数指定按第二个元素(年龄)排序
people_sorted = sorted(people, key=lambda x: x[1])
print(people_sorted)
# 输出:[('李四', 18), ('张三', 20), ('王五', 25)]
 
 

例 5:配合 map () 映射

# 对列表每个元素平方
nums = [1, 2, 3, 4]
result = list(map(lambda x: x**2, nums))
print(result)  # [1, 4, 9, 16]
 
 

例 6:配合 filter () 过滤 

# 筛选出大于5的数字
nums = [3, 6, 8, 2, 9]
result = list(filter(lambda x: x > 5, nums))
print(result)  # [6, 8, 9]
 
 

 

3. 匿名函数 vs 普通函数

 
普通函数需要定义名称、多行代码: 
def add(x, y):return x + y
 
 
匿名函数一行搞定,无需名称:
lambda x, y: x + y
 
 

总结 

  1. lambda 是匿名函数的关键字,只能写单行表达式
  2. 适合简单逻辑,代码更简洁
  3. 常用场景:sorted/map/filterkey 参数
  4. 复杂逻辑必须用普通 def 函数
http://www.jsqmd.com/news/545044/

相关文章:

  • 视频修复神器Untrunc:从损坏到完整的高效恢复方案
  • 解决国内网络环境下GitHub资源访问难题:GitHub加速计划一站式解决方案
  • 分子构象采样新范式:CREST工具解决药物研发核心挑战
  • 如何高效获取B站资源:DownKyi视频下载工具的完整指南
  • pot-desktop:跨平台翻译与OCR识别终极指南
  • Flowable流程定义怎么存?MySQL+MongoDB混合存储方案实战与踩坑记录
  • 攻防世界 misc题GFSJ0315-【Miscellaneous-300】
  • 判断回文字符串
  • Android Gradle - Gradle 自定义插件(Build Script 自定义插件、buildSrc 自定义插件、独立项目自定义插件)
  • 电柜的接地电阻标准通常应不大于4Ω是为什么?
  • RDK X5到手别急着玩,先搞定这3个远程连接和VNC卡顿的坑
  • LibreCAD完整入门指南:如何免费掌握专业2D CAD设计
  • 2026液压升降货梯:解码工业货运三大变革趋势 - 速递信息
  • 攻克直播链接解析难题:DouyinLiveRecorder的全方位解决方案
  • 十分钟搞定智能客服:用快马平台快速原型化你的第一个ibbot机器人
  • OpenClaw+ollama-QwQ-32B实战:自动化处理100份简历筛选
  • 突破3D打印数据壁垒:Blender 3MF格式插件的技术实现与实战应用
  • LyricsX深度使用指南:打造你的macOS桌面歌词体验
  • 别再用错模型了!PX4飞控仿真中,刚体模型和阻尼模型到底怎么选?(附Python/Simulink代码对比)
  • 别再浪费贴图了!UE5 Vertex Color完全指南:从基础混合到进阶高度控制
  • Dlib零基础避坑指南:Windows Python环境一键部署实战
  • 科研图表数据提取的现代解决方案:用WebPlotDigitizer重塑你的数据处理工作流
  • 100行代码掌握扩散模型:Diffusion-Models-pytorch完全指南
  • 手把手教你用PaddleSeg搭建人像抠图API:含MODNet模型调优技巧与避坑指南
  • 打造手游PC级操控:QtScrcpy键鼠映射完全指南
  • Qwen-Image-2512像素艺术未来演进:3D像素体素(Voxel)生成扩展路径
  • RWKV7-1.5B-g1a开源镜像安全实践:模型文件SHA256校验+服务非root运行配置
  • 华为eNSP实验翻车实录:SSH配置最常见的3个坑及一键排查命令
  • 智能EFI构建:OpCore Simplify如何将黑苹果配置效率提升90%
  • 如何在.NET应用中快速集成VLC多媒体播放功能:终极实战指南