13
元组(Tuples)
元组(Tuples):当数据“不该被改”时的安全容器
你现在可能会困惑什么
“list 已经够用了,tuple 有什么意义?”
当你希望数据保持稳定(坐标、配置、返回值),tuple 的不可变特性能减少误改 bug。
一句话定义
元组是有序但不可变的序列。
生活类比
list 像草稿纸可反复修改; tuple 像签字后的合同,默认不改。
最小可运行例子
point = (10, 20)
print(point[0]) # 10
单元素元组陷阱
a = ("python",)
b = ("python")
print(type(a)) # tuple
print(type(b)) # str
解包(高频)
name, age = ("Alice", 25)
print(name, age)
课堂小测(3 分钟)
- 定义
(x, y)坐标并解包打印。 - 写函数返回
(min, max)。 - 判断某对象是否为 tuple。
课堂小测参考答案与判分点
- 参考答案方向:能写出可运行代码,并覆盖题目中的核心条件与边界输入。
- 判分点 1(正确性):主流程结果正确,关键分支可执行。
- 判分点 2(可读性):变量命名清晰,结构不过度嵌套。
- 判分点 3(健壮性):对空值、类型错误或异常输入有基础保护。
迁移任务(课后)
写一个函数 parse_user(),返回 (name, level, is_vip)。
本节验收标准
你能独立做到:
- 正确创建 tuple(含单元素)
- 使用 tuple 解包
- 说明 tuple 和 list 的选择场景
常见报错与调试步骤(新手版)
- 报错看不懂:先读最后一行错误类型(如
TypeError、NameError),再回到对应代码行定位。 - 不确定变量值:在关键位置临时
print(变量, type(变量)),先确认数据是否符合预期。 - 改了代码却没生效:确认文件已保存、运行的是当前文件、终端环境(venv)是否正确。
常见误区
-
误区:
("x")是 tuple。 -
正解:单元素 tuple 必须带逗号
("x",)。 -
误区:tuple 完全不能更新。
-
正解:tuple 本身不可变,但其中可变元素内容仍可变。