【Python 字典推导式与集合推导式】
📅 2026/7/10 22:16:01
👁️ 次浏览
文章目录Python 字典推导式与集合推导式 ✨什么是推导式字典推导式Dictionary Comprehension示例1基本字典推导式示例2带条件的字典推导式示例3从两个列表创建字典字典推导式的性能集合推导式Set Comprehension示例1基本集合推导式示例2带条件的集合推导式示例3从字符串创建字符集合推导式的嵌套与复杂用法何时使用推导式总结Python 字典推导式与集合推导式 ✨在Python编程中推导式Comprehension是一种简洁且高效的数据结构构建方式。它允许我们通过一行代码生成列表、字典或集合使代码更加Pythonic和易于阅读。今天我们将重点探讨字典推导式Dictionary Comprehension和集合推导式Set Comprehension这两个功能在处理数据时非常实用。通过本文您将学会如何使用它们并通过代码示例和图表加深理解。什么是推导式推导式是Python中的一种语法结构用于从可迭代对象如列表、元组或集合中快速构建新的数据结构。它类似于一种压缩的循环结合条件判断让代码更简洁。Python支持多种推导式列表推导式List Comprehension字典推导式Dictionary Comprehension集合推导式Set Comprehension在本文中我们将聚焦于字典和集合推导式它们分别用于创建字典和集合对象。字典推导式Dictionary Comprehension字典推导式允许我们通过简洁的语法从可迭代对象中创建字典。基本语法如下{key_expression:value_expressionforiteminiterableifcondition}这里key_expression和value_expression是表达式根据item计算键和值iterable是任何可迭代对象condition是可选的过滤条件。示例1基本字典推导式假设我们有一个数字列表想要创建一个字典其中键是数字值是它的平方numbers[1,2,3,4,5]squared_dict{num:num**2fornuminnumbers}print(squared_dict)# 输出: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}这等价于使用循环squared_dict{}fornuminnumbers:squared_dict[num]num**2但推导式更简洁示例2带条件的字典推导式我们可以添加条件来过滤元素。例如只对偶数求平方even_squared{num:num**2fornuminnumbersifnum%20}print(even_squared)# 输出: {2: 4, 4: 16}示例3从两个列表创建字典有时我们有两个列表一个作为键一个作为值。可以使用zip函数结合推导式keys[a,b,c]values[1,2,3]my_dict{k:vfork,vinzip(keys,values)}print(my_dict)# 输出: {a: 1, b: 2, c: 3}字典推导式的性能字典推导式通常比等效的循环更快因为它是在C层优化的。对于大型数据集这可以带来显著的性能提升。下面是一个简单的性能对比图表使用mermaid表示展示推导式与循环的时间复杂度假设n为元素数量字典推导式 vs 循环性能比较时间复杂度101001000元素数量n1009080706050403020100时间相对单位从图表中可以看出随着数据量增加推导式的优势更明显。集合推导式Set Comprehension集合推导式类似于字典推导式但用于创建集合set。集合是无序且不重复的元素集。语法如下{expressionforiteminiterableifcondition}注意这里没有键值对只有一个表达式。示例1基本集合推导式从一个列表中创建集合自动去重numbers_with_duplicates[1,2,2,3,4,4,5]unique_numbers{numfornuminnumbers_with_duplicates}print(unique_numbers)# 输出: {1, 2, 3, 4, 5}示例2带条件的集合推导式只保留偶数even_unique{numfornuminnumbers_with_duplicatesifnum%20}print(even_unique)# 输出: {2, 4}示例3从字符串创建字符集合集合推导式常用于提取唯一字符texthello worldunique_chars{charforcharintextifchar! }print(unique_chars)# 输出: {h, e, l, o, w, r, d}推导式的嵌套与复杂用法推导式可以嵌套用于处理更复杂的数据结构。例如在字典推导式中使用嵌套循环# 创建一个乘法表字典table{i:{j:i*jforjinrange(1,4)}foriinrange(1,4)}print(table)# 输出: {1: {1: 1, 2: 2, 3: 3}, 2: {1: 2, 2: 4, 3: 6}, 3: {1: 3, 2: 6, 3: 9}}这生成了一个嵌套字典外层键是乘数内层是乘法结果。何时使用推导式推导式非常适合简单的数据转换和过滤。但在以下情况可能更适合使用传统循环逻辑过于复杂推导式会降低可读性。需要多次循环或副作用如打印语句。处理异常或需要更细粒度的控制。记住代码的可读性很重要如果推导式变得难以理解就拆分成循环。总结字典推导式和集合推导式是Python中强大的工具可以让代码更简洁、高效。通过本文的示例和解释您应该能够熟练使用它们了。实践中多尝试推导式来简化您的代码吧如果您想深入学习Python数据结构可以参考Python官方文档了解更多。另外Real Python 也有许多关于推导式的详细教程。Happy coding!
天然产物(Natural Products)具有丰富的结构类型和良好的生物活性,是创新药物研发的重要来源之一。但由于多数天然产物存在多靶点、多通路协同调控的特点,其作用机制研究一直面临较大挑战。近年来,DARTS(药物…
📅 2026/7/10 22:16:01
例子0:https://www.kdocs.cn/l/cp1DT0sq6ltW 例子1: gsm_info NULL; //这里给指针赋值0x00000000
gsm_info (TYPE_GSM_PROCESS *)OSQPend(&gsm_process_q, OSCfg_TickRate_Hz, OS_OPT_PEND_BLOCKING, &size, NULL, &err);
if(err OS_…
📅 2026/7/10 22:16:01
据近 12 个月搜索引擎指数的显示,“电脑主板的作用是什么” 相关搜索量同比上涨 32%,其中工控场景下的主板功能适配问题,是制造类用户咨询的高频痛点。很多刚接触工业硬件的用户只关注 CPU 性能,却忽略了主板作为核心载体的关键作…
📅 2026/7/10 22:15:01
在移动互联网高度发达的今天,网络流量如同空气与水,成为人们生活中不可或缺的必需品。当人们外出旅游或日常出行时,哗哗消耗的流量常常引发焦虑,免费Wi-Fi工具因此备受青睐。然而,曾经风靡一时的WiFi万能钥匙ÿ…
📅 2026/7/10 23:21:18
RePKG深度解析:Wallpaper Engine资源解包与TEX转换实战指南 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg
问题驱动:当创意遇上技术壁垒
你是否曾经遇到过…
📅 2026/7/10 23:21:18
加粗样式前面几篇我们把 AI 搭子从"只会聊天"养到了"能自己学会发文章"。可一直有个事梗在那儿:这个搭子只活在我自己这台电脑上。 换台机器就没了,给别人也用不了。
这不是一个人遇到的问题。你帮团队配好了一套 AI 工作流、攒了一…
📅 2026/7/10 23:21:18
前一篇我们把 AI 搭子封成了一个标准化的"罐头"——开盖即用,谁打开都有。可你很快会遇到一个新问题:一百个人同时打开罐头呢?
不是技术上的"并发处理不过来"——是更本质的问题:谁来管谁什么时候能有搭子、…
📅 2026/7/10 23:21:18
基于MATLAB的深度学习工具箱实战解析:从环境配置到模型构建的全流程指南
项目简介与核心功能
在人工智能飞速发展的今天,深度学习已成为解决图像识别、自然语言处理等复杂问题的关键技术。MATLAB作为强大的科学计算平台,通过其深度学习工具箱…
📅 2026/7/10 23:21:18
PPT模板分享
📅 2026/7/10 23:20:18
一、为什么接口自动化测试,适合用AI赋能?
大家可自行先思考一个问题:
AI赋能测试全流程,为什么优先推荐从接口自动化切入?
有三个典型原因:
接口输入结构化,AI最擅长"吃"
接口有OpenA…
📅 2026/7/10 0:00:53
终极原神FPS解锁器完整指南:轻松突破60帧限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock
原神FPS解锁器是一款专为《原神》玩家设计的开源工具,通过先进的Wri…
📅 2026/7/10 0:00:53
YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?🎵 【免费下载链接】YesPlayMusic 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: 项目地址: https://gitcode.com/gh_mirrors/ye/YesPlayMusic…
📅 2026/7/10 0:00:53
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/10 22:46:54
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/10 22:46:54
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/10 22:46:54
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/10 22:46:54
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/10 22:46:54
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/10 22:46:54