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

上一期小练习解答(第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 + yadd_lambda = lambda x, y: x + yprint(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 reducenums = [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.mzph.cn/diannao/79625.shtml

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

相关文章

Redis--主从复制

目录 一、配置 1.1 建立复制 1.2 断开复制 1.3 安全性 1.4 只读 1.5 传输延迟 二、拓扑 2.1 一主一从结构 2.2 一主多从结构 2.3 树形主从结构 在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他服务器,满足故障恢 复和负载均衡等需求…

已注册商标如何防止被不使用撤销!

近年来已注册商标被撤销越来越多,不乏著名企业或机构,普推知产商标老杨看到前一阵看到央视和百度等申请的商标也被申请撤销,连续三年不使用撤销也是正常的商标流程。 已注册商标被撤销普推老杨看到案例主要是集中在一些早期申请注册的好记的商…

解密大模型背后的秘密:训练、优化与挑战

解密大模型背后的秘密:训练、优化与挑战 在当今的人工智能领域,大模型(Large Language Models, LLMs)已经成为了一个不可忽视的存在。从自然语言处理到图像生成,再到推荐系统,大模型以其强大的泛化能力和创…

App自动化测试流程方案与架构设计

App自动化测试流程方案与架构设计 一、核心流程设计 #mermaid-svg-kN4GmIvHb8MMT83M {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kN4GmIvHb8MMT83M .error-icon{fill:#552222;}#mermaid-svg-kN4GmIvHb8MMT83M .e…

字节跳动发布视频生成基础大模型 Seaweed-7B

近日,字节跳动发布了其全新视频生成基础大模型 Seaweed-7B,该模型由字节 Seed 团队开发,参数量仅为 70 亿,在多个方面展现出卓越性能,为 AI 视频生成领域带来了新的突破。 功能特点 支持多种生成方式:Sea…

如何基于区块链进行虚拟电厂运营平台建设?

本项目旨在基于区块链技术建设虚拟电厂运营平台,以提升省内大用户及工业企业和工业园区的需求响应能力,优化能源结构配置,并推动能源交易、需求响应和现货交易等新型业态的发展。通过建设虚拟电厂,项目将实现工业企业及园区各供用…

LeetCode[459]重复的子字符串(KMP解法)

思路: 最近迷上了KMP算法,所以这道题也是来搞一下KMP算法,总所周知KMP是需要维护一个前缀表,KMP算法不是比较一个字符串包不包含另一个字符串的吗,这个重复字符串的题也能用?猫爷:毋庸置疑&…

spring-batch批处理框架(2)

文章目录 八、作业控制8.1 作业启动8.1.1 SpringBoot 启动8.1.2 Spring 单元测试启动8.1.3 RESTful API 启动 8.2 作业停止方案1:Step 步骤监听器方式方案2:StepExecution停止标记 8.3 作业重启8.3.1 禁止重启8.3.2 限制重启次数8.3.3 无限重启 九、Item…

uniapp的通用页面及组件基本封装

1.基本布局页面 适用于自定义Navbar头部 <template><view :style"{ background : param.bgColor , height: 100% }"><block v-if"param.noHead"><slot name"head"></slot></block><block v-if"!p…

基于MTF的1D-2D-CNN-GRU-Attention时序图像多模态融合的故障识别,适合研究学习(Matlab完整源码和数据),附模型研究报告

基于MTF的1D-2D-CNN-GRU-Attention时序图像多模态融合的故障识别&#xff0c;适合研究学习&#xff08;Matlab完整源码和数据&#xff09;&#xff0c;附模型研究报告 目录 基于MTF的1D-2D-CNN-GRU-Attention时序图像多模态融合的故障识别&#xff0c;适合研究学习&#xff08;…

HTTP/1.1 队头堵塞问题

文章目录 一、队头堵塞1、非管线化2、管线化 二、如何解决&#xff1f; 一、队头堵塞 1、非管线化 如图&#xff0c;http 请求必须等到上一个请求响应后才能发送&#xff0c;后面的以此类推&#xff0c;由此可以看出&#xff0c;在一个 tcp 通道中&#xff0c;如果某个 http 请…

施磊老师基于muduo网络库的集群聊天服务器(二)

文章目录 Cmake简单介绍Cmake与MakefileCmake配置CmakeLists.txt 编写完整cmake例子文件夹杂乱问题多级目录Cmakevscode 极其推荐 的 cmake方式 Mysql环境与编程mysql简单使用User表Friend表AllGroup表GroupUser表OfflineMessage表 集群聊天项目工程目录创建网络模块代码Chatse…

4.18---缓存相关问题(操作原子性,击穿,穿透,雪崩,redis优势)

为什么要用redis做一层缓存&#xff0c;相比直接查mysql有什么优势&#xff1f; 首先介绍Mysql自带缓存机制的问题&#xff1a; MySQL 的缓存机制存在一些限制和问题,它自身带的缓存功能Query Cache只能缓存完全相同的查询语句&#xff0c;对于稍有不同的查询语句&#xff0c…

健康养生指南

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

#去除知乎中“盐选”付费故事

添加油猴脚本&#xff0c;去除知乎中“盐选”付费故事 // UserScript // name 盐选内容隐藏脚本 // namespace http://tampermonkey.net/ // version 0.2 // description 自动隐藏含有“盐选专栏”或“盐选”文字的回答卡片 // author YourName // mat…

如何防止接口被刷

目录 &#x1f6e1;️ 一、常见的防刷策略分类 &#x1f527; 二、技术实现细节 ✅ 1. 基于 IP 限流 ✅ 2. 给接口加验证码 ✅ 3. 使用 Token 限制接口访问权限 ✅ 4. 给接口加冷却时间&#xff08;验证码类经典&#xff09; ✅ 5. 使用滑动窗口限流算法&#xff08;更精…

github 项目迁移到 gitee

1. 查看远程仓库地址 git remote -v 2. 修改远程仓库地址 确保 origin 指向你的 Gitee 仓库&#xff0c;如果不是&#xff0c;修改远程地址。 git remote set-url origin https://gitee.com/***/project.git 3. 查看本地分支 git branch 4. 推送所有本地分支 git p…

探索大语言模型(LLM):目标、原理、挑战与解决方案

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言语言模型的目标语言模型的数学表示语言模型面临的挑战解决参数量巨大的方法1. 马尔可夫假设2. 神经网络语言模型3.自监督学习4. 分布式表示 脑图总结 前言 在自…

Kubernetes》》k8s》》Namespace

Namespace 概述 Namespace&#xff08;命名空间&#xff09; 是 Kubernetes 中用于逻辑隔离集群资源的机制&#xff0c;可将同一集群划分为多个虚拟环境&#xff0c;适用于多团队、多项目或多环境&#xff08;如开发、测试、生产&#xff09;的场景。 核心作用&#xff1a; 资…

FFUF指南

ffuf 的核心功能&#xff1a; 目录/文件发现&#xff1a; 通过暴力破解&#xff08;使用字典&#xff09;探测目标网站的隐藏目录或文件&#xff0c;例如&#xff1a; ffuf -w /path/to/wordlist.txt -u http://target.com/FUZZ 子域名枚举&#xff1a; 通过模糊测试发现目标…