苦练Python第29天:一行代码生成字典与集合!

苦练Python第29天:一行代码生成字典与集合!

前言

大家好,我是倔强青铜三 。欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

欢迎来到《100天Python》第29天!昨天我们聊了列表推导式的优雅写法,今天升级------用一行代码搞定字典和集合,让数据处理快到飞起。


🎯 今日速览

  • 什么是字典推导式
  • 什么是集合推导式
  • 语法与实战示例
  • 何时使用最划算
  • 常见坑点一次扫清

🧾 字典推导式:键值对秒变新字典

语法极简:

python 复制代码
{key_expr: value_expr for item in iterable}
✅ 示例1:数字平方表
python 复制代码
squares = {x: x**2 for x in range(5)}
print(squares)
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
✅ 示例2:统计字母出现次数
python 复制代码
word = "banana"
char_count = {char: word.count(char) for char in word}
print(char_count)
# {'b': 1, 'a': 3, 'n': 2}
✅ 示例3:一键反转键值
python 复制代码
original = {'a': 1, 'b': 2, 'c': 3}
swapped = {v: k for k, v in original.items()}
print(swapped)
# {1: 'a', 2: 'b', 3: 'c'}
✅ 示例4:过滤低价水果
python 复制代码
prices = {'apple': 100, 'banana': 40, 'mango': 150}
cheap_fruits = {k: v for k, v in prices.items() if v < 100}
print(cheap_fruits)
# {'banana': 40}

🔁 集合推导式:去重神器

语法同样简洁:

python 复制代码
{expression for item in iterable}
✅ 示例1:单词唯一字母
python 复制代码
word = "balloon"
unique_chars = {char for char in word}
print(unique_chars)
# {'n', 'b', 'o', 'a', 'l'}
✅ 示例2:偶数平方集合
python 复制代码
even_squares = {x**2 for x in range(10) if x % 2 == 0}
print(even_squares)
# {0, 4, 16, 36, 64}

💡 为什么非用不可?

  • 🔄 一行代码完成转换
  • 🚀 运行速度比传统循环快
  • 💼 场景丰富:过滤、转换、反转数据
  • 自动去重:集合天然排重

⚠️ 常见踩坑指南

  1. 键冲突后值被覆盖

    python 复制代码
    {char: i for i, char in enumerate("banana")}
    # {'b': 0, 'a': 5, 'n': 4}  # 'a'被最后一次覆盖
  2. 字典遍历忘加.items()

    python 复制代码
    {k: v for k, v in my_dict}       # ❌ TypeError
    {k: v for k, v in my_dict.items()}  # ✅
  3. 误把集合当有序结构
    集合无序,切勿依赖位置索引。


🧪 真实场景实战

🔧 场景1:快速反转映射
python 复制代码
data = {"x": 1, "y": 2}
inverted = {v: k for k, v in data.items()}
# {1: 'x', 2: 'y'}
📚 场景2:构建单词索引
python 复制代码
words = ["apple", "banana", "cherry"]
index = {word: i for i, word in enumerate(words)}
# {'apple': 0, 'banana': 1, 'cherry': 2}
🔥 场景3:提取句子中所有元音
python 复制代码
sentence = "Today is a beautiful day"
vowels = {char for char in sentence.lower() if char in 'aeiou'}
# {'a', 'e', 'i', 'o', 'u'}

🧭 今日复盘

✅ 掌握字典推导式集合推导式

✅ 区分它们与列表推导式的差异

✅ 牢记语法细节与最佳实践

✅ 实战演练:反转字典、过滤数据、提取唯一元素

最后感谢阅读!欢迎关注我,微信公众号倔强青铜三。欢迎点赞收藏关注,一键三连!!!

相关推荐
一朵小红花HH15 分钟前
SimpleBEV:改进的激光雷达-摄像头融合架构用于三维目标检测
论文阅读·人工智能·深度学习·目标检测·机器学习·计算机视觉·3d
Daitu_Adam16 分钟前
R语言——ggmap包可视化地图
人工智能·数据分析·r语言·数据可视化
weixin_3776348417 分钟前
【阿里DeepResearch】写作组件WebWeaver详解
人工智能
AndrewHZ18 分钟前
【AI算力系统设计分析】1000PetaOps 算力云计算系统设计方案(大模型训练推理专项版)
人工智能·深度学习·llm·云计算·模型部署·大模型推理·算力平台
AI_gurubar1 小时前
[NeurIPS‘25] AI infra / ML sys 论文(解析)合集
人工智能
胡耀超1 小时前
PaddleLabel百度飞桨Al Studio图像标注平台安装和使用指南(包冲突 using the ‘flask‘ extra、眼底医疗分割数据集演示)
人工智能·百度·开源·paddlepaddle·图像识别·图像标注·paddlelabel
聆思科技AI芯片1 小时前
【AI入门课程】2、AI 的载体 —— 智能硬件
人工智能·单片机·智能硬件
优秘智能UMI2 小时前
UMI企业智脑智能营销:多平台视频矩阵引领营销新潮流
大数据·运维·人工智能·ai·矩阵·aigc
热爱生活的猴子2 小时前
使用bert或roberta模型做分类训练时,分类数据不平衡时,可以采取哪些优化的措施
人工智能·分类·bert
jie*2 小时前
小杰机器学习高级(five)——分类算法的评估标准
人工智能·python·深度学习·神经网络·机器学习·分类·回归