Python语法系列博客 · 第8期[特殊字符] Lambda函数与高阶函数:函数式编程初体验

news2025/4/20 7:22:58

上一期小练习解答(第7期回顾)

✅ 练习1:找出1~100中能被3或5整除的数
result = [x for x in range(1, 101) if x % 3 == 0 or x % 5 == 0]

✅ 练习2:生成字符串长度字典

words = ["apple", "banana", "grape"]
lengths = {word: len(word) for word in words}

✅ 练习3:乘法字典

multiplication_table = {(i, j): i * j for i in range(1, 6) for j in range(1, 6)}

 ✅ 练习4:唯一偶数集合

lst = [1, 2, 2, 3, 4, 4, 6]
even_set = {x for x in lst if x % 2 == 0}

本期主题:Lambda函数与高阶函数


🟦 8.1 匿名函数 lambda

匿名函数(Lambda)是用来创建简单函数的一种简洁方式。

✅ 基本语法:
lambda 参数: 表达式

⚠️ 注意:lambda 函数只能写一行表达式,不能有多行语句。

示例:普通函数 vs lambda

def add(x, y):
    return x + y

add_lambda = lambda x, y: x + y

print(add(2, 3))         # 5
print(add_lambda(2, 3))  # 5

8.2 高阶函数简介

高阶函数指的是接收函数作为参数,或返回另一个函数的函数。

8.3 map() 函数

对可迭代对象中的每个元素执行某个函数。

nums = [1, 2, 3, 4]
squares = list(map(lambda x: x**2, nums))
print(squares)  # [1, 4, 9, 16]

8.4 filter() 函数

筛选符合条件的元素。

nums = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens)  # [2, 4, 6]

 

8.5 reduce() 函数(需导入 functools)

对所有元素累积运算。

from functools import reduce

nums = [1, 2, 3, 4]
total = reduce(lambda x, y: x + y, nums)
print(total)  # 10

 

应用实例:常见用法组合

🔹 对字符串列表大小写转换
words = ["apple", "banana", "grape"]
upper = list(map(lambda w: w.upper(), words))

🔹 保留长度大于5的字符串

long_words = list(filter(lambda w: len(w) > 5, words))

🔹 所有价格加税10%

prices = [100, 200, 300]
taxed = list(map(lambda p: round(p * 1.1, 2), prices))

本期小练习

  1. 使用 map[1, 2, 3, 4, 5] 转为字符串列表。

  2. 使用 filter 从列表中筛选出所有回文字符串(例如 "madam")。

  3. 使用 reduce 计算 [2, 3, 4] 的乘积。

  4. 定义一个 lambda 函数,实现 x² + 2x + 1 的计算。

本期小结

  • 学习了 lambda匿名函数 的用法。

  • 掌握了三种常用的高阶函数:map, filter, reduce

  • 初步感受了 函数式编程思想 的强大与简洁。

第9期预告:

下一期我们将深入了解:

  • Python中的函数定义进阶

  • 可变参数:*args**kwargs

  • 参数解包与实战技巧

  • 默认参数 & 关键字参数的使用场景

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2338565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FFmpeg 硬核指南:从底层架构到播放器全链路开发实战 基础

目录 1.ffmpeg的基本组成2.播放器的API2.1 复用器阶段2.1.1 分配解复用上下文2.1.2 文件信息操作2.1.3 综合示例 2. 2 编解码部分2.2.1 分配解码器上下文2.2.2编解码操作2.2.3 综合示例 3 ffmpeg 内存模型3.1 基本概念3.2API 1.ffmpeg的基本组成 模块名称功能描述主要用途AVFo…

UE5有些场景的导航生成失败解决方法

如果导航丢失,就在项目设置下将: 即可解决问题: 看了半个小时的导航生成代码发现,NavDataSet这个数组为空,导致异步构建导航失败。 解决 NavDataSet 空 无法生成如下: 当 NavDataSet 为空的化 如果 bAut…

MCP(Model Context Protocol 模型上下文协议)科普

MCP(Model Context Protocol,模型上下文协议)是由人工智能公司 Anthropic 于 2024年11月 推出的开放标准协议,旨在为大型语言模型(LLM)与外部数据源、工具及服务提供标准化连接,从而提升AI在实际…

健康养生指南

在快节奏的现代生活中,健康养生成为人们关注的焦点。它不仅关乎身体的强健,更是提升生活质量、预防疾病的关键。掌握科学的养生方法,能让我们在岁月流转中始终保持活力。 饮食是健康养生的基础。遵循 “均衡膳食” 原则,每日饮食需…

Linux系统:进程终止的概念与相关接口函数(_exit,exit,atexit)

本节目标 理解进程终止的概念理解退出状态码的概念以及使用方法掌握_exit与exit函数的用法以及区别atexit函数注册终止时执行的函数相关宏 一、进程终止 进程终止(Process Termination)是指操作系统结束一个进程的执行,回收其占用的资源&a…

Linux下 文件的查找、复制、移动和解压缩

1、在/var/log目录下创建一个hehe.log的文件,其文件内容是: myhostname ghl mydomain localdomain relayhost [smtp.qq.com]:587 smtp_use_tls yes smtp_sasl_auth_enable yes smtp_sasl_security_options noanonymous smtp_sasl_tls_security_opt…

C语言学习之预处理指令

目录 预定义符号 #define的应用 #define定义常量 #define定义宏 带有副作用的宏参数 宏替换的规则 函数和宏定义的区别 #和## #运算符 ##运算符 命名约定 #undef ​编辑 命令行定义 条件编译 头文件包含 头文件被包含的方式 1.本地头文件包含 2.库文件包含 …

【STM32单片机】#10 USART串口通信

主要参考学习资料: B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接:https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装:STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 实验&…

fastlio用mid360录制的bag包离线建图,提示消息类型错误

我用mid360录制的bag包,激光雷达的数据类型是sensor_msgs::PointCloud2,但是运行fast_lio中的mid360 launch文件,会报错(没截图),显示无法从livox_ros_driver2::CustomMsg转换到sensor_msgs::PointCloud2。…

二级评论列表-Java实现

二级评论列表是很常见的功能,文章记录了新手用Java实现的具体逻辑。 整体实现逻辑是先用2个sql,分别查出两层数据。然后用java在service中实现数据组装,返给前端。这种实现思路好处是SQL简洁,逻辑分明,便于维护。 一…

IP检测工具“ipjiance”

目录 IP质量检测 应用场景 对网络安全的贡献 对网络管理的帮助 对用户决策的辅助作用 IP质量检测 检测IP的网络提供商:通过ASN(自治系统编号)识别IP地址所属的网络运营商,例如电信、移动、联通等。 识别网络类型&#xff1…

Replicate Python client

本文翻译整理自:https://github.com/replicate/replicate-python 文章目录 一、关于 Replicate Python 客户端相关链接资源关键功能特性 二、1.0.0 版本的重大变更三、安装与配置1、系统要求2、安装3、认证配置 四、核心功能1、运行模型2、异步IO支持3、流式输出模型…

deekseak 本地windows 10 部署步骤

有些场景需要本地部署,例如金融、医疗(HIPAA)、政府(GDPR)、军工等,需完全控制数据存储和访问权限,避免云端合规风险或者偏远地区、船舶、矿井等无法依赖云服务,关键设施&#xff08…

<sql>、<resultMap>、<where>、<foreach>、<trim>、<set>等标签的作用和用法

目录 一. sql 代码片段标签 二. resultMap 映射结果集标签 三. where 条件标签 四. set 修改标签 五. trim 标签 六. foreach 循环标签 一. sql 代码片段标签 sql 标签是 mybatis 框架中一个非常常用的标签页,特别是当一张表很有多个字段多,或者要…

【项目】CherrySudio配置MCP服务器

CherrySudio配置MCP服务器 &#xff08;一&#xff09;Cherry Studio介绍&#xff08;二&#xff09;MCP服务环境搭建&#xff08;1&#xff09;环境准备&#xff08;2&#xff09;依赖组件安装<1> Bun和UV安装 &#xff08;3&#xff09;MCP服务器使用<1> 搜索MCP…

【技术派后端篇】 Redis 实现用户活跃度排行榜

在各类互联网应用中&#xff0c;排行榜是一个常见的功能需求&#xff0c;它能够直观地展示用户的表现或贡献情况&#xff0c;提升用户的参与感和竞争意识。在技术派项目中&#xff0c;也引入了用户活跃度排行榜&#xff0c;该排行榜主要基于 Redis 的 ZSET 数据结构来实现。接下…

模拟算法(一)作业分析及答案

目录 作业1&#xff1a;角谷猜想 解题思路 &#xff1a; 代码实现&#xff1a; 作业2&#xff1a;校门外的树 解题思路 注意事项 代码实现 作业3&#xff1a;乒乓球 ​编辑 问题重述 解题思路&#xff1a; 作业1&#xff1a;角谷猜想 【描述】 所谓角谷猜想&#xf…

西红柿番茄检测数据集VOC+YOLO格式2320张1类别可用于计数

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2320 标注数量(xml文件个数)&#xff1a;2320 标注数量(txt文件个数)&#xff1a;2320 …

专题十六:虚拟路由冗余协议——VRRP

一、VRRP简介 VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;虚拟路由冗余协议通过把几台设备联合组成一台虚拟的设备&#xff0c;使用一定的机制保证当主机的下一跳设备出现故障时&#xff0c;及时将业务切换到备份设备&#xff0c;从而保持通讯的连续性和…

DDPM(diffusion)原理

DDPM&#xff08;diffusion&#xff09;原理 1、DDPM&#xff08;原理&#xff09;2、DDPM和 Conditional DDPM&#xff08;原理解释&#xff09;2.1. Diffusion Models 原理详解核心思想前向扩散过程&#xff08;Forward Diffusion&#xff09;反向去噪过程&#xff08;Revers…