📚 Python Tuple(元组)知识点总结
✅ 什么是 Tuple?
tuple
是 Python 中的一种 有序、不可变(immutable) 的序列类型。- 类似于列表(list),但元组一旦创建,内容就不能更改。
- 常用于:
- 表示结构稳定的数据(如坐标、区间、数据库行)
- 多个函数返回值
- 可以作为字典的键(因为是可哈希的)
🧱 Tuple 的创建方式
python
# 1. 用小括号创建
t1 = (1, 2, 3)
# 2. 省略括号(逗号优先)
t2 = 4, 5, 6
# 3. 单元素元组必须加逗号
t3 = (42,) # 正确 ✅
t4 = (42) # 错误 ❌ -> 只是一个整数
# 4. 用 tuple() 函数转换列表
t5 = tuple([7, 8, 9])
🧠 元组 VS 列表(Tuple vs List)
特性 | Tuple (tuple ) |
列表 (list ) |
---|---|---|
括号表示 | () |
[] |
是否可变 | ❌ 不可变 | ✅ 可变 |
是否可作字典键 | ✅ 可以 | ❌ 不可以 |
支持的方法 | 少(只支持 count, index) | 多(append, pop, sort...) |
性能与安全性 | ✅ 更快更安全 | 稍慢 |
🧩 使用场景
python
# 用于函数返回多个值
def divide(a, b):
return a // b, a % b
q, r = divide(10, 3) # 解包 tuple
python
# 作为不可变的数据结构
coordinate = (100, 200)
person_info = ("Alice", 30, 1.65, True)
python
# 作为 dict 键
pop_map = {
(15, 19): 180,
(20, 24): 210
}
🔄 遍历与解包
python
# 遍历元组
for item in ('a', 'b', 'c'):
print(item)
# 解包元组
x, y, z = (1, 2, 3)
print(x, y, z) # 1 2 3
🔐 Tuple 是不可变的,但可以包含可变对象
python
t = (1, [2, 3])
t[1].append(4)
print(t) # 输出: (1, [2, 3, 4])
虽然 tuple 自身不能修改,但如果它里面包含的是 list,这个 list 是可以修改的。
⚠️ 注意事项
-
单元素元组必须加逗号,否则就是普通值:
pythont = (5,) # ✅ tuple t = (5) # ❌ int
-
元组不能修改:
pythont = (1, 2, 3) t[0] = 99 # ❌ TypeError
📚 常用方法与操作
python
t = (1, 2, 3, 2)
len(t) # 获取元素个数
t[0] # 索引访问
t.index(2) # 查找元素索引(返回第一个匹配)
t.count(2) # 统计某个值的出现次数
🧠 Tuple 的高级特性
- 支持嵌套、混合类型
python
mixed = ("Alice", 30, 1.75, True)
nested = (1, (2, 3), [4, 5])
-
可以用于
set
,dict
等要求 hashable 的数据结构中:pythonvalid_keys = set() valid_keys.add((10, 20))
✅ 总结
tuple
是一种轻量、不可变的数据结构;- 支持所有序列操作(切片、索引、遍历);
- 比列表更安全、性能更高;
- 是函数返回多个值、结构化小数据块的首选结构。