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

Python 核心数据结构实战全攻略:列表 / 字典 / 元组 / 集合从入门到精通

前言在 Python 编程中列表list、字典dict、元组tuple、集合set是最核心、最常用的四大内置数据结构是所有 Python 开发者必须熟练掌握的基础核心能力。它们覆盖了日常开发中有序存储、键值映射、不可变数据、去重运算等几乎所有场景。很多初学者只会基础的增删改查却不知道这些数据结构藏着大量高效、简洁、高性能的实战技巧。本文将用超详细讲解 大量可运行代码从基础用法、高级技巧、性能优化、实战场景、避坑指南五个维度全面拆解四大数据结构适合所有 Python 学习者直接学习、复制、实战。本文基于 Python 3.8 环境所有代码均可直接运行。一、列表List最常用的有序可变序列列表是 Python 中使用频率最高的数据结构特点有序、可变、允许重复元素、支持任意数据类型。1.1 列表基础创建与操作python运行# 1. 创建列表 empty_list [] # 空列表 num_list [1, 2, 3, 4, 5] # 数字列表 mix_list [1, abc, True, [1,2]] # 混合类型列表 list_by_compre [i for i in range(5)] # 推导式创建 # 2. 基础访问索引、切片 print(num_list[0]) # 1正索引 print(num_list[-1]) # 5负索引 print(num_list[1:4]) # [2,3,4]切片 print(num_list[::-1]) # [5,4,3,2,1]反转 # 3. 增删改查 num_list.append(6) # 末尾添加 num_list.insert(0, 0) # 指定位置插入 num_list.extend([7,8]) # 批量添加 num_list.remove(3) # 删除元素 del num_list[0] # 删除索引 last num_list.pop() # 弹出末尾元素1.2 列表推导式高效生成列表核心技巧python运行# 基础推导式 square [x**2 for x in range(10)] # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] # 带条件筛选 even [x for x in range(10) if x % 2 0] # [0,2,4,6,8] # 多重循环 matrix [[i,j] for i in range(2) for j in range(2)] # [[0,0],[0,1],[1,0],[1,1]]1.3 列表高级实战技巧技巧 1快速去重保持顺序python运行lst [1,2,2,3,3,3] new_lst list(dict.fromkeys(lst)) # [1,2,3]技巧 2批量修改元素python运行lst [1,2,3,4] lst[:] [x*2 for x in lst] # [2,4,6,8]技巧 3解压列表python运行a, *mid, b [1,2,3,4,5] print(a) # 1 print(mid) # [2,3,4] print(b) # 5技巧 4统计频次python运行from collections import Counter lst [a,a,b,c] print(Counter(lst)) # Counter({a:2, b:1, c:1})技巧 5扁平化嵌套列表python运行nested [[1,2],[3,4],[5,6]] flat [i for item in nested for i in item] # [1,2,3,4,5,6]1.4 列表常用内置方法python运行lst [3,1,4,1,5] lst.sort() # 排序[1,1,3,4,5] lst.sort(reverseTrue) # 倒序 lst.reverse() # 反转 print(lst.index(3)) # 查找索引 print(lst.count(1)) # 统计次数1.5 列表实战场景数据存储、日志记录、批量处理读取文件行、接口返回数据数据分析、排序筛选、统计二、字典Dict键值对映射神器字典是 Python 中最核心的映射型数据结构特点键唯一、无序3.7 有序、可变、查询极快。2.1 字典基础操作python运行# 创建字典 empty_dict {} user {name:Tom, age:20, gender:male} # 访问 print(user[name]) print(user.get(age, 0)) # 安全获取无则返回默认值 # 增删改 user[height] 180 # 添加 user[age] 21 # 修改 del user[gender] # 删除 age user.pop(age) # 弹出键值对2.2 字典推导式python运行# 快速生成字典 dic {x:x**2 for x in range(5)} # {0:0,1:1,2:4,3:9,4:16} # 列表转字典 keys [a,b,c] values [1,2,3] dic dict(zip(keys, values)) # {a:1,b:2,c:3}2.3 字典高级实战技巧技巧 1安全访问避免 KeyErrorpython运行# 推荐写法 print(user.get(score, 0)) # 不推荐 # print(user[score]) # 报错技巧 2合并字典python运行a {x:1} b {y:2} # Python3.5 c {**a, **b} # Python3.9 c a | b # {x:1, y:2}技巧 3快速获取键、值、键值对python运行print(user.keys()) print(user.values()) print(user.items()) # 最常用技巧 4遍历字典最优雅写法python运行for k, v in user.items(): print(k, v)技巧 5字典默认值defaultdictpython运行from collections import defaultdict d defaultdict(int) d[a] 1 # 不会报错默认 0技巧 6按值排序字典python运行dic {a:3, b:1, c:2} sorted_dic dict(sorted(dic.items(), keylambda x:x[1])) # {b:1,c:2,a:3}技巧 7字典解包python运行def info(name, age): print(name, age) user {name:Tom, age:20} info(**user)2.4 字典实战场景配置文件、接口参数缓存、计数、映射关系JSON 数据处理最常用三、元组Tuple不可变的安全容器元组与列表非常相似但不可变不能增删改特点安全、高效、可哈希、可作为字典键。3.1 元组基础用法python运行# 创建元组 t (1,2,3) single (1,) # 单元素必须加逗号 no_bracket 1,2,3 # 访问同列表 print(t[0]) print(t[1:3]) # 不可修改报错 # t[0] 1003.2 元组核心技巧技巧 1变量交换一行实现python运行a, b 1, 2 a, b b, a技巧 2函数多返回值python运行def get_pos(): return 10, 20 x, y get_pos()技巧 3元组解包python运行a, *mid, b (1,2,3,4,5) print(mid) # [2,3,4]技巧 4元组转列表 / 列表转元组python运行lst list(t) t tuple(lst)技巧 5作为字典键列表不行python运行dic {(1,2): 坐标} # 合法 # dic {[1,2]:坐标} # 报错3.3 元组优势比列表更快、更省内存不可变数据更安全可哈希可用于字典和集合四、集合Set去重与数学运算神器集合最大特点无序、无重复、支持数学交集 / 并集 / 差集运算。4.1 集合基础操作python运行# 创建集合 s {1,2,2,3} # 自动去重 {1,2,3} s2 set([1,2,3,3]) # 添加删除 s.add(4) s.update([5,6]) s.remove(2) s.discard(9) # 无则不报错 s.pop() # 随机删除4.2 集合实战技巧技巧 1极速去重最快方法python运行lst [1,2,2,3,3,3] new_lst list(set(lst))技巧 2交集、并集、差集python运行a {1,2,3} b {3,4,5} print(a b) # 交集 {3} print(a | b) # 并集 {1,2,3,4,5} print(a - b) # 差集 {1,2} print(a ^ b) # 对称差集 {1,2,4,5}技巧 3判断子集、超集python运行x {1,2} y {1,2,3} print(x.issubset(y)) # True print(y.issuperset(x)) # True技巧 4快速判断两列表是否有交集python运行if set(lst1) set(lst2): print(有交集)技巧 5集合推导式python运行s {x for x in range(10) if x%20}4.3 集合实战场景数据去重共同好友、共同兴趣筛选权限判断、黑名单校验快速查找存在性五、四大数据结构对比与选择指南5.1 核心对比表表格结构有序可变重复查找适用场景列表是是允许慢有序列表、批量数据字典是 (3.7)是键唯一极快键值映射、配置元组是否允许慢固定数据、安全集合否是不允许极快去重、数学运算5.2 如何选择需要有序、可修改→ 列表需要键值对、快速查询→ 字典需要不可变、安全、固定值→ 元组需要去重、交集、并集→ 集合六、综合实战案例四大结构联用案例 1学生成绩管理系统python运行# 列表存储学生 students [ {name: Tom, score: 88}, {name: Jerry, score: 95}, {name: Tom, score: 70} ] # 去重姓名 names {s[name] for s in students} # 统计最高分 max_score max(students, keylambda x:x[score]) # 按分数排序 sorted_stu sorted(students, keylambda x:-x[score])案例 2批量数据清洗python运行data [1,2,2,3,4,4,5,None] # 去重 过滤空值 clean list(set(filter(None, data)))案例 3JSON 数据解析字典 列表python运行json_data { code:200, data: [ {id:1, name:a}, {id:2, name:b} ] } names [item[name] for item in json_data[data]]七、高频面试题列表和元组区别可变 vs 不可变性能不同用途不同。字典为什么查询快哈希表存储O (1) 时间复杂度。如何快速去重list(set(lst))什么数据结构可作为字典键可哈希对象字符串、数字、元组。集合的核心用途去重、数学运算、快速判断存在性。总结本文完整覆盖 Python列表、字典、元组、集合四大核心数据结构列表有序可变最常用适合批量数据字典键值映射查询最快适合配置与 JSON元组不可变安全高效适合固定数据集合去重神器数学运算快速判断掌握这些实战技巧你的代码会更简洁、高效、优雅能轻松应对日常开发、数据分析、自动化、爬虫、面试等所有场景。

相关文章:

Python 核心数据结构实战全攻略:列表 / 字典 / 元组 / 集合从入门到精通

前言在 Python 编程中,列表(list)、字典(dict)、元组(tuple)、集合(set) 是最核心、最常用的四大内置数据结构,是所有 Python 开发者必须熟练掌握的基础核心能…...

两台 H.323 终端点对点直连通信完整步骤

下面给你最精简、最标准、可用于考试/开发/调试的: 两台 H.323 终端点对点直连通信完整步骤 无网守(Gatekeeper)、纯终端对终端,一步不落。一、前提条件 终端A:主叫(比如 192.168.1.10)终端B&am…...

LAYONTHEGROUND栈

一、什么是requests? requests 是一个用于发送HTTP请求的 Python 库。 它可以帮助你: 轻松发送GET、POST、PUT、DELETE等请求 处理Cookie、会话等复杂性 自动解压缩内容 处理国际化域名和URL 二、应用场景 requests 广泛应用于以下实际场景: …...

我不是在用 AI 助手,我在把自己的能力沉淀成组织资产衫

1. 什么是 Apache SeaTunnel? Apache SeaTunnel 是一个非常易于使用、高性能、支持实时流式和离线批处理的海量数据集成平台。它的目标是解决常见的数据集成问题,如数据源多样性、同步场景复杂性以及资源消耗高的问题。 核心特性 丰富的数据源支持&#…...

实测PyTorch-2.x-Universal-Dev-v1.0:开箱即用,GPU验证到Jupyter启动全流程

实测PyTorch-2.x-Universal-Dev-v1.0:开箱即用,GPU验证到Jupyter启动全流程 1. 引言:为什么选择这个镜像 深度学习开发环境配置一直是让开发者头疼的问题。从CUDA驱动安装到各种Python库的版本兼容性,每一步都可能遇到意想不到的…...

Qwen2.5-72B-Instruct-GPTQ-Int4多场景:医疗问诊记录结构化+术语标准化

Qwen2.5-72B-Instruct-GPTQ-Int4多场景:医疗问诊记录结构化术语标准化 1. 模型简介与核心能力 1.1 Qwen2.5系列模型概述 Qwen2.5是通义千问大模型系列的最新版本,提供了从0.5B到720B参数规模的基础模型和指令调优模型。相比前代Qwen2,Qwen…...

SensitivityMatcher:终极游戏鼠标灵敏度精准转换指南

SensitivityMatcher:终极游戏鼠标灵敏度精准转换指南 【免费下载链接】SensitivityMatcher Script that can be used to convert your mouse sensitivity between different 3D games. 项目地址: https://gitcode.com/gh_mirrors/se/SensitivityMatcher 想要…...

WHAT - Shell 工具 warp 介绍(融合 AI)

文章目录Warp Terminal 是什么和传统 Terminal 最大区别可以“用人话操作终端”输入体验像代码编辑器Block(块)概念(非常关键)AI Agent团队协作(Warp Drive)UI 和体验完全现代化和 iTerm2 / Terminal 的本…...

Markdown Viewer浏览器扩展:终极Markdown预览解决方案

Markdown Viewer浏览器扩展:终极Markdown预览解决方案 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 还在为浏览器中无法直接预览Markdown文件而烦恼吗?M…...

RVC多语言支持实测:中文/日文/韩文/英文语音转换效果横向对比

RVC多语言支持实测:中文/日文/韩文/英文语音转换效果横向对比 1. 引言:当AI学会“说”多国语言 想象一下,你手头有一段自己的中文录音,但你需要一段日文配音的视频,或者一段韩文的产品介绍。传统方法要么找专业配音&…...

我的OpenClaw使用体验:从怀疑到依赖的“数字员工”

最初接触OpenClaw时,我和许多人一样,抱着怀疑的态度。一个开源项目,真的能成为我口中那个“能干活”的AI助手吗?然而,经过几个月的深度使用,它已经从一个新奇的玩具,变成了我工作流中不可或缺的…...

LLM安全对齐工程白皮书(工业级落地版):覆盖92%企业场景的12项强制校验清单

第一章:LLM安全对齐工程化的核心范式与工业落地挑战 2026奇点智能技术大会(https://ml-summit.org) 大型语言模型的安全对齐已从实验室研究阶段迈入规模化工程实践的关键转折点。当前主流工业场景中,对齐不再仅依赖RLHF单点优化,而是演进为覆…...

大厂 HR 直言:IT 简历里最加分的 3 个项目类型,别乱写

每年金三银四、秋招旺季,我作为大厂HR,每天要刷几百份IT简历,平均每份停留不超过10秒。很多程序员明明技术不错,却因为项目写得乱七八糟,直接被ATS系统筛掉,连面试机会都没有。重点说一句:IT简历…...

GPU 租用:智星云抢占式实例的极致省钱攻略

按小时计费怎么省?GPU 租用竞价策略与抢占式实例实操——以智星云为例,解锁高性价比算力开篇:算力焦虑的最佳解药大模型时代的科研与开发,往往是一场“算力”的比拼。对于个人开发者、学生群体乃至初创团队来说,动辄数…...

PHP代码加密:2026年开发者必须面对的“最后一道防线“

开篇:一个真实的故事 2024年11月,一位做电商SaaS的朋友找到我,语气当中带着掩饰不住的沮丧。他的核心定价算法,也就是团队花了两年时间打磨出来的东西,被客户的技术团队完整地复制了。没有反编译,也没有逆向…...

3步从零到精通:Krita AI Diffusion插件模型加载全流程指南

3步从零到精通:Krita AI Diffusion插件模型加载全流程指南 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: https://git…...

SEATA分布式事务——AT模式撂

简介 AI Agent 不仅仅是一个能聊天的机器人(如普通的 ChatGPT),而是一个能够感知环境、进行推理、自主决策并调用工具来完成特定任务的智能系统,更够完成更为复杂的AI场景需求。 AI Agent 功能 根据查阅的资料,agent的…...

SkillLite 多入口架构实战:CLI / Python SDK / MCP / Desktop / Swarm 一页理清

摘要 SkillLite 是轻量级 AI Agent Skills 执行引擎:同一套 Rust workspace 拆分多 crate,向上提供「开箱即用的 Agent 产品」与「可嵌入的安全执行内核」。集成方既可通过终端 CLI 与 MCP 接入 IDE,也可在 Python 中调用 scan_code、execut…...

做质检员其实太容易了|云质QMS为您揭秘

质检员入门全流程手册一、质检员的基本业务知识1. 质检员的岗位使命严格执行质量检验标准,对各类生产原料、成品、辅料的质量检验,监控生产工艺的运行情况,对发现的问题及时上报,不断提升产品质量,维护企业质量信誉。2…...

Prompt工程已进入“微秒级响应”时代:奇点大会实测数据显示——提示结构优化带来3.7倍推理吞吐提升

第一章:Prompt工程已进入“微秒级响应”时代:奇点大会实测数据总览 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点智能技术大会上,全球首个面向生产环境的Prompt编译器——PromptLLVM v0.9正式发布,并同步公开其端到…...

5分钟掌握CAD_Sketcher:Blender中实现精确参数化设计的终极指南

5分钟掌握CAD_Sketcher:Blender中实现精确参数化设计的终极指南 【免费下载链接】CAD_Sketcher Constraint-based geometry sketcher for blender 项目地址: https://gitcode.com/gh_mirrors/ca/CAD_Sketcher CAD_Sketcher是Blender中基于约束的几何草图工具…...

告别无效流量!亚马逊关键词挖掘:新手 7 天精准获客不浪费

亚马逊日常运营,关键词选不对,广告全白费:​花大价钱投热门大词,点击多、转化少,ACoS 居高不下;​自己想的关键词没人搜,广告预算花不出去,零曝光零订单;​只盯着 10 几个…...

S32K3XX时钟树实战:从EB配置到外设时钟精准分配

1. S32K3XX时钟树基础:从晶振到外设的时钟旅程 第一次接触S32K3XX系列芯片时,我被它的时钟系统搞得晕头转向。直到把整个时钟链路比作城市供水系统才豁然开朗——晶振就像水源,PLL是增压泵,而七大时钟则是通往不同区域的主管道。这…...

博客建站选购香港云主机要注意哪些

博客建站选购香港云主机要注意哪些?很多人一上来就看价格,哪个便宜买哪个。这是个误区。选配置之前,先问自己三个问题:我的博客是什么类型?纯文字博客、图片站,还是会有视频?预计每天有多少访问量?我的技术能力如何?能自己折…...

Redis:延迟双删的适用边界与落地细节弦

pagehelper整合 引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码 GetMapping("/list/{pageNo}") public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数…...

大模型上线后模型突变怎么办:从灰度失败到秒级回滚的7个关键检查点

第一章:大模型工程化版本管理与回滚机制 2026奇点智能技术大会(https://ml-summit.org) 大模型工程化中的版本管理远超传统软件的 Git commit 粒度,需同时追踪模型权重、Tokenizer 配置、训练超参、推理服务镜像及依赖环境快照。单一 SHA 哈希已无法承载…...

Unity发布京东小游戏笔

从 UI 工程师到 AI 应用架构者 13 年前,我的工作是让按钮在 IE6 上对齐; 13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。 最近&#x…...

k8s集群搭建时提示Unable to connect to the server: tls: failed to verify certificateUnable to connect to the

当执行kubeadm init后kubeadm init \--apiserver-advertise-address192.168.79.132 \--pod-network-cidr192.168.0.0/16 \--kubernetes-version1.31.2 \--image-repository registry.aliyuncs.com/google_containerskubeadm init \--apiserver-advertise-address192.168.79.132…...

SITS2026平台重构全记录:从单体Java商城到LLM+RAG驱动的AI原生电商,6周完成核心链路迁移并提升GMV 42%

第一章:SITS2026案例:AI原生电商平台实践 2026奇点智能技术大会(https://ml-summit.org) SITS2026是面向下一代电商基础设施的AI原生平台原型,由阿里云与浙江大学联合实验室在2024年Q4启动构建,于2025年Q2完成全链路灰度验证。该…...

一文搞懂:如何用 Spring AI 搭建 MCP Server 和 Client

MCP 概述 Model Context Protocol(MCP) 是一套标准化协议,用于实现 AI 模型与外部工具或资源的交互。它提供一致的接口,使 AI 模型能够访问数据库、API、文件系统及其他外部服务,同时支持多种传输机制,满足…...