python中的推导式

目录

初识推导式

推导式的定义

推导式的常用使用场景

推导式的特点

推导式的种类

列表推导式

字典推导式

集合推导式


初识推导式

推导式的定义

Python 提供的一种快速生成序列(如列表、集合、字典等)的语法,他的主要作用是简化代码结构。

语法结构:

数据加工 for 数据产生 if 数据筛选

|------------|-----------------|-------------------|
| 名称 | 功能说明 | 例如 |
| 数据加工 | 对每个数据进行处理生成新的结果 | x+1 |
| 数据产生 | 从已有的数据集中逐个获取元素 | for i in range(5) |
| 数据筛选(可有可无) | 对数据进行条件过滤 | if i%2==0 |

推导式的常用使用场景

  • 从一个序列中筛选数据,快速过滤符合条件的元素
  • 对原数据进行加工处理、格式转换、数学运算等
  • 组合两个序列,生成新的列表或字典或嵌套列表
  • 元素去重(运用集合推导式)
  • 字典的重构与翻转

推导式的特点

|-------|-----|
| 简洁 | 高效 |
| 多结构支持 | 可筛选 |
| 可嵌套 | 易理解 |

推导式的种类

|-------|----------------|-------------|
| 类型 | 结构形式 | 用途 |
| 列表推导式 | 表达式 for... | 筛选、加工、生成新列表 |
| 字典推导式 | {k:v for...} | 构建新字典、筛选、反转 |
| 集合推导式 | {表达式 for...} | 去重、生成唯一元素集合 |

列表推导式

语法结构:

表达式 for 变量 in 可迭代对象 if 条件

用途:简洁地构建新列表,过滤元素,元素变换,嵌套循环。

例如,勇者从药剂师那里收到了一个混乱的药材列表,其中包含一些无用的杂草(如杂草),他只想保留真正有用的药材,并将它们都加上(已确认)标记,以便记录。以下为药剂师的混乱的药材列表:

"火焰花", "杂草", "蓝露果", "杂草", "夜影叶", "星辰草", "杂草"

python 复制代码
grass = ["火焰花", "杂草", "蓝露果", "杂草", "夜影叶", "星辰草", "杂草"]
after_grass = [i+'(已确认)' for i in grass if i!='杂草']
print(after_grass)

对代码进行运行测试:

字典推导式

语法结构:

{键表达式: 值表达式 for 变量 in 可迭代对象 if 条件}

用途:快速创建键值对,反转字典,基于条件筛选字典元素。

例如,冒险前,勇者向村民们收集药品,每个人给的数量不同,部分村民手上是"空瓶"(数量为 0),不应该被记录。以下是每个人手中药品的数量:

raw_potions = {'艾琳': 3,'格雷': 0,'莉莉丝': 5,'村长': 1,'老猎人': 0}

python 复制代码
raw_potions = {'艾琳': 3,'格雷': 0,'莉莉丝': 5,'村长': 1,'老猎人': 0}
valid_potions = {name: count for name, count in raw_potions.items() if count > 0}
print(valid_potions)

对代码进行运行测试:

集合推导式

语法结构:

{表达式 for 变量 in 可迭代对象 if 条件}

用途:去重,快速构建集合,集合变换,生成满足条件的唯一元素集合。

例如,勇者一天内经历了多场战斗,记录了所有出现的怪物名字,但很多是重复的。现在要整理出独特的怪物种类,用于战斗报告。以下是勇者遇到过的怪物列表:

'史莱姆', '哥布林', '史莱姆', '史莱姆', '兽人', '哥布林', '龙'

python 复制代码
monster = ['史莱姆', '哥布林', '史莱姆', '史莱姆', '兽人', '哥布林', '龙']
monster_type = {i for i in monster}
print(monster_type)

对代码进行运行测试:

相关推荐
今天AI了吗9 小时前
【AI】一文讲清 RAG:从大模型局限到企业级知识库落地流程
前端·javascript·人工智能·python·深度学习·机器学习·easyui
“AI国潮设计-小江”9 小时前
《Python实战 | 用SDXL大模型生成“潮汕英歌舞”国潮IP头像,已申请外观专利,附Prompt思路!》
人工智能·python·prompt·aigc·scikit-learn
霸道流氓气质9 小时前
Spring AI提示词模板与动态变量替换
java·python·spring
民乐团扒谱机9 小时前
【超详细】PyQt6 实现 AU 风格波形图编辑器:多级缩放与采样点逐级渲染,附全过程代码
开发语言·python·编辑器·pyqt·audition·时域·频谱图
CTA量化套保9 小时前
先跑清楚小流程,再让量化功能变复杂
人工智能·python
Csvn9 小时前
🐍 Day 10: 依赖管理 — 从 requirements.txt 到 pyproject.toml
后端·python
2601_962294059 小时前
Python 操作 Word:如何查找、替换和批量修改文本
python·正则表达式·word·文档处理·查找替换
weixin_4407305010 小时前
allure总结--解决版本不相容,没有trend(生成原始报告+复制history后在一起生成新报告)+jenkins集成
python·测试报告·allure
小柯南敲键盘10 小时前
跨马翻译:图片翻译软件批量处理,跨境电商视频字幕AI智能抠图
人工智能·python·音视频
BYSJMG10 小时前
计算机毕业设计选题推荐|【基于大数据的植被光谱特征与环境因子关联分析及可视化】Spark+K-Means
大数据·python·信息可视化·数据分析·spark·kmeans·课程设计