Python 列表、元组、字典、集合 完整区别对比

发布时间:2026/7/23 23:23:02
Python 列表、元组、字典、集合 完整区别对比 我挖掘了一个巨牛的 人工智能 学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到网站。一、基础总览表背诵版类型符号是否可变有序性存储元素允许重复核心用途列表 list[]✅ 可变✅ 有序任意数据类型✅ 允许重复增删改查、有序数组、临时数据容器元组 tuple()❌ 不可变✅ 有序任意数据类型✅ 允许重复固定数据、函数返回多值、字典 key字典 dict{k:v}✅ 可变✅ 3.7 插入有序键值对keyvaluekey 不可重复value 可重复映射关系根据 key 快速取值集合 set{}✅ 可变❌ 无序仅不可变类型数字 / 字符串 / 元组❌ 自动去重去重、交集 / 并集 / 差集运算二、逐个详细拆解1. 列表 list[]特性可变支持增、删、改元素python运行lst [1, 2, 3] lst[0] 99 # 修改 lst.append(4) # 新增 lst.pop() # 删除有序按下标lst[0]取值插入顺序永久保留允许重复元素[1,1,2]合法元素无类型限制可嵌套列表、字典等可变对象适用场景需要频繁修改、追加、删除的数据有序数据存储学生成绩、文件路径序列。2. 元组 tuple()特性不可变核心特点定义后不能修改、新增、删除任何元素python运行t (1,2,3) t[0] 99 # 直接报错 TypeError有序支持下标取值t[0]、切片t[:2]允许重复元素(1,1,2)因为不可变可以作为字典的 key列表不行适用场景数据不希望被修改坐标、配置常量函数一次性返回多个返回值作为字典 key、集合内元素。小细节单元素元组必须加逗号(5,)(5)只是数字括号不是元组。3. 字典 dict{key: value}特性可变可新增、修改、删除键值对有序Python3.7 及以上插入顺序保留存储结构唯一键key : 任意值valuekey 要求必须是不可变类型数字、字符串、元组不能重复重复 key 会覆盖旧值value 无限制可重复、可存列表 / 字典不能用下标数字取值只能通过dict[key]按键查找python运行d {name:小明, age:20} d[age] 21 # 修改value d[sex] 男 # 新增键值对适用场景一对一映射关系用户信息、配置参数、ID 对应数据需要根据名称 / 标识快速查找内容。4. 集合 set{1,2,3}特性可变集合 set还有不可变版本frozenset无序没有下标不能通过set[0]取值每次打印顺序随机自动去重重复元素存入直接丢弃python运行s {1,1,2,2,3} print(s) # {1,2,3}元素限制只能存不可变类型数字、字符串、元组列表 / 字典不能放入集合专属能力集合运算交集、并集、差集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}适用场景快速对列表去重判断两个数据集重合、对比差异。三、高频易混考点可变 vs 不可变核心区分可变list /dict/set → 内存原地修改不生成新对象不可变tuple /str/int → 修改只能新建对象原数据不变哪些能做字典 key、集合元素只有不可变类型int、float、str、tuple list、dict、set 可变禁止作为 key / 集合成员。有序 vs 无序有序list、tuple、dict (3.7)支持下标 / 按插入顺序遍历无序set无下标不记录插入顺序去重需求优先用集合lst list(set(原列表))一行完成去重缺点会打乱原有顺序四、极简一句话总结列表有序可改通用数组元组有序不可改安全固定数据字典键值映射按键快速查找集合无序自动去重用于数据对比、去重。有序真正的含义是插入顺序被记住# 字典从 Python 3.7 开始有序 d {} d[c] 3 d[a] 1 d[b] 2 print(list(d.keys())) # [c, a, b] —— 和插入顺序一致 # 集合依然无序 s {apple, banana, cat, 99999} print(s) # 随机种子开启后每次打印顺序完全不一样所以有序是指遍历时元素出现的顺序和当初插入的顺序一致。