Python 四大容器:列表 list、元组 tuple、字典 dict、集合 set
·
Python 四大容器:列表 list、元组 tuple、字典 dict、集合 set
一、总览对比
| 类型 | 符号 | 可变? | 有序? | 元素特点 | 核心用途 |
|---|---|---|---|---|---|
| 列表 list | [] |
✅ 可变 | ✅ 有序 | 可重复、任意类型 | 存一组有序数据,增删改查 |
| 元组 tuple | () |
❌ 不可变 | ✅ 有序 | 可重复、任意类型 | 固定不变数据,做函数返回、字典键 |
| 字典 dict | {k:v} |
✅ 可变 | ✅ 有序(py3.7+) | 键唯一,值任意 | 键值对应,快速查找 |
| 集合 set | {} |
✅ 可变 | ❌ 无序 | 自动去重、只能存不可变元素 | 去重、交集并集差集运算 |
二、列表 list []
1. 创建
lst = [10, 3.14, "python", True]
empty = []
2. 常用操作
lst = [2,4,6,8]
# 取值索引(从0开始)
print(lst[0]) # 2
print(lst[-1]) # 最后一位 8
# 修改元素
lst[1] = 99
# 增删
lst.append(10) # 末尾添加
lst.insert(1, 33) # 指定位置插入
lst.pop() # 删除末尾,返回值
lst.remove(6) # 删除指定元素
del lst[0] # 根据索引删除
# 切片
print(lst[1:3])
# 长度
print(len(lst))
特性:有序、可重复、随时增删改
三、元组 tuple ()
1. 创建
t1 = (1, 2, "abc")
t2 = (5,) # 单个元素必须加逗号,否则不是元组
t3 = () # 空元组
2. 操作:只能查,不能改、增、删
t = (10,20,30)
print(t[0])
print(t[-1])
print(len(t))
# t[0] = 99 # 报错!元组不可修改
使用场景
- 数据不允许被修改(坐标、固定参数)
- 可作为字典的 key(列表不行)
- 函数多返回值默认用元组
四、字典 dict {key:value}
1. 创建
d = {"name":"小明", "age":20, "height":1.75}
empty_dict = {}
规则:
- key(键):必须不可变(数字、字符串、元组),唯一
- value(值):任意类型,可重复
2. 常用操作
d = {"name":"小明", "age":20}
# 取值两种方式
print(d["name"])
print(d.get("age"))
# 新增/修改键值对
d["gender"] = "男"
d["age"] = 21
# 删除
del d["gender"]
d.pop("age")
# 获取所有键、值、键值对
print(d.keys())
print(d.values())
print(d.items())
特点:查询速度极快,适合一一对应数据
五、集合 set {}
1. 创建
s = {1,2,3,3,2} # 自动去重 → {1,2,3}
empty_set = set() # 空集合不能用{},{}是空字典
限制:集合内不能放列表、字典等可变类型
2. 集合运算(最核心)
a = {1,2,3,4}
b = {3,4,5,6}
print(a | b) # 并集:全部元素去重 {1,2,3,4,5,6}
print(a & b) # 交集:共同元素 {3,4}
print(a - b) # 差集:a独有 {1,2}
print(a ^ b) # 对称差集:只存在一边 {1,2,5,6}
3. 增删
s = {1,2,3}
s.add(9)
s.remove(2)
s.discard(10) # 不存在也不报错
用途:快速列表去重、数据对比
六、简单区分记忆
- 需要频繁增删数据 → 列表
- 数据固定、不允许修改 → 元组
- 需要一一对应、按键快速查找 → 字典
- 需要去重、求交集并集 → 集合
七、小练习
# 1.列表去重
lst = [1,2,2,3,3,3]
new_lst = list(set(lst))
print(new_lst)
# 2.字典遍历
student = {"name":"小红", "score":90}
for k,v in student.items():
print(k, v)
更多推荐


所有评论(0)