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

AI教你学Python 第12天 : Lambda 表达式

Day 12: Lambda 表达式

1. Lambda 表达式概述

lambda 表达式是 Python 中用于创建匿名函数的一种简便方式。与传统的使用 def 关键字定义函数不同,lambda 可以在一行内定义简单的函数。这种特性使得 lambda 成为提高代码简洁性和可读性的一个有效工具。

2. Lambda 表达式的基本语法
lambda arguments: expression
  • arguments:输入参数,可以是多个,用逗号分隔。
  • expression:一个表达式,计算并返回该表达式的结果。
3. Lambda 表达式示例

示例代码 1:基本用法

# 定义一个简单的lambda函数
add = lambda x, y: x + yresult = add(5, 3)
print(result)  # 输出结果为 8

示例代码 2:与 filter() 函数结合使用

# 过滤出列表中的偶数
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))print(even_numbers)  # 输出结果为 [2, 4, 6]

示例代码 3:与 map() 函数结合使用

# 将列表中的每个数平方
squared_numbers = list(map(lambda x: x ** 2, numbers))print(squared_numbers)  # 输出结果为 [1, 4, 9, 16, 25, 36]
4. Lambda 表达式在排序中的应用

lambda 表达式常用于排序,尤其是复杂数据结构如列表中的字典。

示例代码 4:按字典项排序

data = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 30}]
# 按年龄排序
sorted_data = sorted(data, key=lambda x: x['age'])print(sorted_data)  # 输出结果为 [{'name': 'Bob', 'age': 20}, {'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 30}]
5. Lambda 表达式的优缺点
优点缺点
语法简洁,易于书写不适合复杂逻辑的函数
可以内联使用可读性较差
适合短小的函数调试困难
6. Lambda 表达式的应用场景
  • 简单的数学计算:如加法、乘法。
  • 数据处理:使用 filter(), map(), reduce() 等函数。
  • 排序规则:在复杂数据结构中定义排序关键字。
  • 事件处理:在 GUI 编程中,使用匿名函数处理事件。
7. 运行流程图

以下是一个简单的运行流程图,展示 lambda 表达式的执行流程,假设我们使用 filter() 函数过滤偶数。

+--------------------------+
|         开始            |
+--------------------------+|v
+--------------------------+
|  定义一个 list 叫 numbers |
+--------------------------+|v
+----------------------------+
| 使用 filter() 和 lambda     |
+----------------------------+|v
+--------------------------+
|    检查每个元素是否为偶数 |
| (x % 2 == 0)            |
+--------------------------+|v
+--------------------------+
| 生成新的包含偶数的 list   |
+--------------------------+|v
+--------------------------+
|     打印结果            |
+--------------------------+|v
+--------------------------+
|         结束            |
+--------------------------+
8. 练习题

为了巩固对 lambda 表达式的理解,下面是几个练习题:

  1. 使用 lambdamap() 函数,创建一个将列表中的每个数加 10 的新列表。
  2. 编写一个函数,接受一个字符串列表,使用 lambda 表达式过滤出长度大于 3 的字符串。
  3. 结合 sorted()lambda,对包含元组的列表按第二个元素进行排序。
9. 总结

lambda 表达式在 Python 中为函数定义提供了一种简洁的方式。虽然 lambda 表达式可以提高代码的简洁性,但也不应过度使用,特别是在函数逻辑复杂的情况下。理解何时使用 lambda 是编写优秀 Python 代码的一个重要技能。

附加资源

  • Python 官方文档:lambda 表达式
  • 关于高阶函数的更多信息

怎么样今天的内容还满意吗?再次感谢观众老爷的观看。
最后,祝您早日实现财务自由,还请给个赞,谢谢!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Vue3使用shapefile读取矢量数据,以数组形式返回坐标点
  • [SDX35+WCN6856]SDX35 + WCN6856 WiFi导致系统crash问题分析及解决方案
  • .Net Core 生成管理员权限的应用程序
  • Linux--守护进程与会话
  • Open3D 特征点匹配(Python)
  • VB中如何实现Windows服务(Windows Service)
  • linux操作系统的引导和修复
  • Qt_多元素控件
  • IEEE-754 32位十六进制数 转换为十进制浮点数
  • 论文解读《NewsBench:一个评估中文新闻大型语言模型编辑能力的系统评估框架》
  • C语言的指针运算
  • AI教你学Python 第11天 : 局部变量与全局变量
  • Vert.x HttpClient调用后端服务时使用Idle Timeout和KeepAlive Timeout的行为分析
  • kubernetes 学习 尚硅谷
  • IMS 呼叫流程(详细)
  • CAP理论的例子讲解
  • CEF与代理
  • express + mock 让前后台并行开发
  • Laravel 菜鸟晋级之路
  • SpringBoot几种定时任务的实现方式
  • 复习Javascript专题(四):js中的深浅拷贝
  • 复杂数据处理
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 理解在java “”i=i++;”所发生的事情
  • 聊聊sentinel的DegradeSlot
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 漂亮刷新控件-iOS
  • 前端面试之闭包
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 线上 python http server profile 实践
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (19)夹钳(用于送货)
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (五)MySQL的备份及恢复
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)visual stdio 书签功能介绍
  • (转)winform之ListView
  • ******之网络***——物理***
  • ***通过什么方式***网吧
  • .htaccess配置重写url引擎
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net分布式压力测试工具(Beetle.DT)
  • .net中生成excel后调整宽度
  • .php文件都打不开,打不开php文件怎么办