发布于2026-07-24 阅读(0)
扫一扫,手机访问
先说几个核心判断。Python的数据结构,说白了就是四大金刚:列表、元组、字典、集合。它们各有各的脾气,用错了地方,代码就会出问题。先别慌,一张表格就能把它们的核心区别讲清楚,说白了就是个“总览表”——背下来,等于拿到了钥匙。
| 类型 | 符号 | 是否可变 | 有序性 | 存储元素 | 允许重复 | 核心用途 |
|---|---|---|---|---|---|---|
| 列表 list | [] | ✅ 可变 | ✅ 有序 | 任意数据类型 | ✅ 允许重复 | 增删改查、有序数组、临时数据容器 |
| 元组 tuple | () | ❌ 不可变 | ✅ 有序 | 任意数据类型 | ✅ 允许重复 | 固定数据、函数返回多值、字典 key |
| 字典 dict | {k:v} | ✅ 可变 | ✅ 3.7 + 插入有序 | 键值对(key+value) | key 不可重复,value 可重复 | 映射关系,根据 key 快速取值 |
| 集合 set | {} | ✅ 可变 | ❌ 无序 | 仅不可变类型(数字 / 字符串 / 元组) | ❌ 自动去重 | 去重、交集 / 并集 / 差集运算 |
lst = [1, 2, 3] lst[0] = 99 # 修改 lst.append(4) # 新增 lst.pop() # 删除
lst[0] 取值,插入顺序永久保留,你按什么顺序放进去,它就会按什么顺序排着队等你取。[1,1,2] 完全合法,想放几个重复的,随你。t = (1,2,3) t[0] = 99 # 直接报错 TypeError
t[0]、切片t[:2],顺序固定,不会变。(1,1,2),重复也没关系。一个极易踩坑的细节:单元素元组必须加个逗号,写成
(5,)。如果你只写(5),Python会认为你只是用括号括了一个数字,返回的是int,不是tuple。这一点,初学者翻车的概率极高。
唯一键key : 任意值valuedict["key"] 按键查找,这是它的索引方式。d = {"name":"小明", "age":20}
d["age"] = 21 # 修改value
d["sex"] = "男" # 新增键值对
frozenset,相当于集合的“元组版”。set[0]取值,每次打印顺序随机,别指望它记住顺序。s = {1,1,2,2,3}
print(s) # {1,2,3}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}lst = list(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)
# 随机种子开启后,每次打印顺序完全不一样
所以,所谓“有序”其实很简单:遍历时,元素出现的顺序和当初插入的顺序一致。 记住这一点,后面写代码就不会迷糊了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8