当前位置: 首页 > article >正文

Python全栈入门到实战【基础篇 13】复合数据类型:字典(键值映射)与集合(无序去重)

前言哈喽各位小伙伴!前面咱们学了字符串、数字这些基础类型,也掌握了列表这种有序序列——但实际开发中,仅靠这些还不够:想存储“姓名-年龄-手机号”这种“键值对应”的用户信息,用列表只能按位置存([“张三”, 20, “13812345678”]),查手机号要记索引,极不方便;想快速给一堆重复数据去重(比如[1,2,2,3,3,3]),用列表要写循环判断,效率低;想对比两个列表的“共同元素”“差异元素”,用列表遍历要写大量代码。这些场景的最优解,就是Python的两大复合数据类型:字典(dict)和集合(set)——字典是“键值映射”的宝库,能通过“键”快速定位“值”,无需记忆位置;集合是“无序去重”的利器,能一键去重、高效做集合运算。这节咱们用“原理+实操+场景+避坑”的方式,吃透字典和集合的核心用法:字典:定义、增删改查、嵌套字典、常用方法(get()/keys()/items());集合:定义、增删改查、去重与集合运算(交集/并集/差集);字典vs集合vs列表:适用场景对比,避免用错类型。吃透这两个类型,你就能高效处理“键值关联数据”和“去重/集合对比”场景,代码简洁度和效率直接翻倍~文章目录前言一、前置引入:为什么需要字典和集合?二、字典(dict):键值映射的“万能容器”1. 字典的定义:键值对的集合语法示例:定义用户信息字典空字典定义2. 字典的核心操作:增删改查(高频)(1)查:获取键对应的值方法1:`dict[key]`(直接访问,键不存在抛异常)方法2:`dict.get(key, default=None)`(推荐,键不存在返回默认值)方法3:`dict.keys()`/`dict.values()`/`dict.items()`(批量获取)(2)增:添加新键值对方法1:`dict[key] = value`(键不存在则新增)方法2:`dict.update(other_dict)`(批量添加/更新)(3)改:修改已有键的值方法:`dict[key] = value`(键存在则修改)(4)删:删除键值对方法1:`del dict[key]`(键不存在抛异常)方法2:`dict.pop(key, default)`(推荐,键不存在返回默认值)方法3:`dict.clear()`(清空所有键值对)3. 字典的进阶用法:嵌套字典示例:嵌套字典(用户的详细信息)4. 字典的核心避坑要点坑1:键必须是不可变类型坑2:重复键会被覆盖坑3:字典是无序的?(Python 3.7+已有序)坑4:遍历字典时修改键会报错三、集合(set):无序去重的“高效工具”1. 集合的定义:无序不重复元素语法示例:定义集合用`set()`转换其他类型为集合2. 集合的核心操作:增删改查(1)查:判断元素是否存在(`in`/`not in`)(2)增:添加元素方法1:`set.add(element)`(添加单个元素)方法2:`set.update(iterable)`(批量添加元素)(3)删:删除元素方法1:`set.remove(element)`(元素不存在抛异常)方法2:`set.discard(element)`(推荐,元素不存在不报错)方法3:`set.pop()`(随机删除一个元素,返回该元素)方法4:`set.clear()`(清空集合)3. 集合的核心功能:集合运算(交集/并集/差集)核心集合运算表(以`a={1,2,3,4}`,`b={3,4,5,6}`为例)示例:集合运算实战4. 集合的核心避坑要点坑1:空集合不能用`{}`坑2:集合是无序的,不能用索引访问坑3:元素必须是不可变类型坑4:集合运算返回新集合,不修改原集合四、字典vs集合vs列表:怎么选?选型口诀五、实战案例:用户信息管理系统(整合字典与集合)六、总结七、专栏订阅一、前置引入:为什么需要字典和集合?前面学的列表(list)是“有序序列”,但有两个明显短板:查找元素依赖索引,无法通过“语义化标识”(比如“姓名”“手机号”)快速定位;允许重复元素,去重需要额外写代码;集合运算(比如找共同元素)效率低,时间复杂度是O(n²)。而字典和集合正好弥补了这些短板:字典:用“键(key)-值(value)”对应关系存储,查找元素时间复杂度O(1)(和索引查找一样快),比如通过user["phone"]直接获取手机号,无需记位置;集合:自动去重,支持交集()、并集(|)、差集(-)等运算,时间复杂度O(1),处理重复数据和集合对比时效率极高。简单说:存储“键值对应”数据(用户信息、配置参数、JSON数据)→ 用字典;去重、集合对比(共同好友、商品分类交集)→ 用集合;有序存储、按位置访问 → 用列表。二、字典(dict):键值映射的“万能容器”字典是Python中最常用的复合类型之一,核心是“键值对(key-value pair)”,每个键唯一对

相关文章:

Python全栈入门到实战【基础篇 13】复合数据类型:字典(键值映射)与集合(无序去重)

前言 哈喽各位小伙伴!前面咱们学了字符串、数字这些基础类型,也掌握了列表这种有序序列——但实际开发中,仅靠这些还不够: 想存储“姓名-年龄-手机号”这种“键值对应”的用户信息,用列表只能按位置存([“张三”, 20, “13812345678”]),查手机号要记索引,极不方便;…...

Qwen3-Reranker-0.6B基础教程:1.2GB模型文件完整性校验(sha256)方法

Qwen3-Reranker-0.6B基础教程:1.2GB模型文件完整性校验(sha256)方法 1. 为什么需要校验模型文件完整性 当你下载Qwen3-Reranker-0.6B这个1.2GB的大文件时,可能会遇到各种问题:网络中断导致下载不完整、存储设备故障造…...

Phi-3-mini-128k-instruct应用场景:为低代码平台注入智能表单生成与校验能力

Phi-3-mini-128k-instruct应用场景:为低代码平台注入智能表单生成与校验能力 你是不是也遇到过这样的场景?公司要上线一个新业务,产品经理火急火燎地跑过来:“快,明天就要一个用户注册表单,字段大概20个&a…...

UI-TARS-desktop行业案例:医疗信息科用Qwen3-Agent自动抓取指南文献、提取适应症、生成摘要表

UI-TARS-desktop行业案例:医疗信息科用Qwen3-Agent自动抓取指南文献、提取适应症、生成摘要表 1. 医疗信息处理的痛点与解决方案 医疗信息科每天需要处理大量的医学文献、临床指南和研究报告。传统的人工处理方式效率低下,容易出现遗漏和错误。医生和研…...

Qwen Pixel Art实战教程:结合Label Studio构建像素艺术数据标注-生成闭环

Qwen Pixel Art实战教程:结合Label Studio构建像素艺术数据标注-生成闭环 1. 引言:从想法到像素的完整旅程 你有没有想过,自己动手创造一套风格统一的像素艺术角色?比如为你的独立游戏设计主角、NPC和怪物,或者为你的…...

Nanbeige4.1-3B多场景落地:开发者写代码、运营写文案、HR写JD的三类Prompt模板

Nanbeige4.1-3B多场景落地:开发者写代码、运营写文案、HR写JD的三类Prompt模板 你是不是也遇到过这样的问题:拿到一个看起来很强大的AI模型,比如这个3B参数的Nanbeige4.1-3B,但真要用起来的时候,却不知道该怎么跟它“…...

LFM2.5-1.2B-Thinking在Ollama中怎么用?图文并茂的零基础操作手册

LFM2.5-1.2B-Thinking在Ollama中怎么用?图文并茂的零基础操作手册 本文面向零基础用户,手把手教你如何在Ollama中使用LFM2.5-1.2B-Thinking模型,无需任何技术背景,跟着做就能快速上手。 1. 认识LFM2.5-1.2B-Thinking模型 LFM2.5-…...

DeepSeek-OCR · 万象识界实战案例:企业合同扫描件自动转Markdown结构化处理

DeepSeek-OCR 万象识界实战案例:企业合同扫描件自动转Markdown结构化处理 你有没有遇到过这样的情况?公司财务部送来一沓合同扫描件,要求你把关键信息整理成电子文档。你打开PDF,看着密密麻麻的文字和表格,心里默默计…...

BERT文本分割-中文-通用领域企业级应用:提升客服对话日志分析结构化水平

BERT文本分割-中文-通用领域企业级应用:提升客服对话日志分析结构化水平 1. 引言:客服对话分析的结构化挑战 在客服行业中,每天都会产生海量的对话记录。这些对话通常以长文本形式存在,缺乏段落分隔和结构信息,给后续…...

SenseVoice-Small ONNX部署案例:电商直播语音→商品卖点自动提取系统

SenseVoice-Small ONNX部署案例:电商直播语音→商品卖点自动提取系统 1. 项目背景与价值 电商直播已经成为现代零售的重要渠道,但海量的直播内容带来了新的挑战。主播在直播中会详细介绍商品特点,但这些宝贵的卖点信息往往随着直播结束而消…...

EmbeddingGemma-300m部署教程:Ollama+Docker组合实现多实例并发嵌入服务

EmbeddingGemma-300m部署教程:OllamaDocker组合实现多实例并发嵌入服务 1. 为什么你需要一个轻量又靠谱的嵌入模型 你是不是也遇到过这些情况: 想给自己的知识库加个语义搜索,但主流大模型动辄几GB显存,笔记本直接卡死&#xf…...

Qwen3-Reranker-0.6B部署教程:NVIDIA Jetson边缘设备低功耗运行实测

Qwen3-Reranker-0.6B部署教程:NVIDIA Jetson边缘设备低功耗运行实测 1. 引言:为什么要在边缘设备上跑重排序模型? 如果你用过RAG(检索增强生成)系统,肯定遇到过这种情况:系统给你找回来一堆文…...

SiameseAOE中文-base实际效果:某电商平台日均百万条评论中属性覆盖率98.2%

SiameseAOE中文-base实际效果:某电商平台日均百万条评论中属性覆盖率98.2% 1. 引言:电商评论分析的挑战与机遇 每天,电商平台都会产生海量的用户评论。这些评论里藏着宝贵的用户反馈:哪些产品特性被喜欢,哪些需要改进…...

10 - 厂商特定测试

🎯 学习目标 完成本章后,你将能够: ✅ 了解不同 GPU 厂商的特性和测试重点✅ 理解 Intel、AMD、NVIDIA 等厂商的专有功能✅ 掌握厂商特定测试的编写方法✅ 学会根据硬件平台选择合适的测试✅ 理解跨厂商测试的注意事项 📖 厂商概…...

产业链供应链论文“从0到1”写作指南:我用这套AI指令三天跑完框架(附可直接复制的Prompt)

带过四届经济学、物流管理专业毕业设计,每年3月都会被同一个问题轰炸:“老师,产业链供应链这个题太大了,我拆不动。”学生交上来的初稿,十有八九长一个样:第一章写“双循环背景”,第二章抄“波特…...

Triton编程技术指南

1、概念OpenAI Triton是一个开源的、类似Python的编程语言和编译器。(1)Program在CUDA中,程序员通常需要管理Thread(线程)和Block(线程块),一个Block包含多个Threads。在Triton中&am…...

每天认识一种投资品类:货币基金

文章目录1.简介2.底层标的3.特点4.投资建议5.小结参考文献1.简介 货币基金(Money Market Funds),全称货币市场基金,是一种主要投资于短期货币市场工具的开放式公募基金。 简单来说,它是一种兼具活期存款的便利性和高…...

【Java从入门到入土】06:String的72变:从字符串拼接到底层优化

【Java从入门到入土】06:String的72变:从字符串拼接到底层优化 String是Java开发中使用率Top1的类,几乎所有项目都绕不开字符串操作——但多数人只停留在“能用”的层面:用拼接字符串、不知道常量池的存在、正则验证写得漏洞百出&…...

ADAS域控基础软件工程师的“数字助理”:OpenClaw自动化实战入门(18大案例版)

📖 目录 我们每天都在忙什么?——ADAS工程师的日常OpenClaw是谁?一个听你话的“数字助理”OpenClaw凭什么适合车载研发?——数据安全本地干活十八个实战案例(分组详版) 环境配置类(3个案例&…...

ssm+java2026年毕设求知书友屋网站【源码+论文】

本系统(程序源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于图书管理系统的研究,现有研究主要以传统单机版管理系统或简单的Web应用为主,专门针对基于SSM框架&…...

ssm+java2026年毕设情报综合管理系统【源码+论文】

本系统(程序源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于警务信息化管理问题的研究,现有研究主要以综合警务管理平台、案件管理系统为主,专门针对警务情报精…...

ssm+java2026年毕设清空购物商城系统【源码+论文】

本系统(程序源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于电商管理系统的研究,现有研究主要以大型综合电商平台(如淘宝、京东)的整体架构设计为主…...

SpikeTrack: A Spike-driven Framework for Efficient Visual Tracking—— 一种用于高效视觉追踪的脉冲驱动框架

1. 研究背景与问题 背景: 脉冲神经网络(SNN)因其事件驱动的特性和稀疏计算优势,在神经形态芯片上具有远超人工程神经网络(ANN)的能效潜力,非常适合处理视频中的连续运动目标。 问题: 现有的将SNN应用于RGB…...

【4G LTE协议分析系列】六、预编码

预编码 整体流程 Precoding vs TM 传输分集Precoding 空间复用Precoding-large delay CDD 空间复用Precoding-selected Codebook Codebook selection for Precoding - 2 Antenna Ports Codebook selection for Precoding - 4 Antenna Ports Codebook for 4 x 2 MIMO Precoding信…...

数据结构顺序表的使用(含通讯录项目)

目录 一,什么是数据结构? 二,顺序表的概念和分类 1,线性表 2,顺序表 3,顺序表的分类 三,动态顺序表的增删查改 四,通讯录项目 五,顺序表练习 1,力扣…...

【RAG】【Data-Processor】【data_connectors40】LlamaIndex数据连接器总览

按类别筛选向量存储连接器Astra DB向量存储基于DataStax Astra DB的向量存储解决方案,提供高性能的向量检索功能。Chroma向量存储开源的嵌入式向量数据库,专为AI应用设计,支持本地和云端部署。DeepMemory向量存储提供长期记忆功能的向量存储解…...

如何快速安装Linux

提示:以下操作均在VMware Workstation应用程序中进行(这里以VMware-workstation-17.6.1-24319023为例)以下是两种方式的安装教程:文字版和图片版,可根据自己喜欢的方式跟着安装Linux一:文字版1.进入VMware …...

同步 Git 仓库修改操作指南

同步 Git 仓库修改操作指南 本文档介绍如何将原始仓库(仓库1)中从某个提交(commit1)之后的所有修改同步到 fork 仓库(仓库2),并提供在测试分支上验证、合并到主分支的方法,以及如何拣…...

VSCode结合EmmyLua实现Lua代码高效调试指南

1. 为什么你需要VSCode EmmyLua来调试Lua? 如果你正在用Lua做开发,不管是游戏脚本(比如Unity里的热更新)、嵌入式设备逻辑,还是服务端的OpenResty,估计都经历过一个头疼的阶段:调试。Lua这门语…...

解决VSCode Remote-SSH连接失败的常见问题与排查方法

1. 从“管道不存在”到“密钥验证失败”:一次典型的Remote-SSH连接失败之旅 如果你也像我一样,习惯了用VSCode的Remote-SSH插件连接远程服务器,把云端环境当成自己的主力开发机,那你肯定也遇到过连接突然失败,弹出一堆…...