元组的核心定位
- 副标题:戴上了枷锁的列表
- 核心区别:元组不可修改,列表可自由增删改
- 特性类比:与字符串一致,不支持原地排序等修改操作
元组的创建与访问
- 创建语法
- 标准写法:小括号括起元素,逗号分隔 → t1 = (1,2,3,4,5)
- 关键标识:逗号是元组的决定性标志,小括号可省略 → t2 = 1,2,3 也是元组
- 单个元素元组:必须加逗号 → t3 = (1,) 或 t3 = 1,
- 空元组:直接用小括号 → t4 = ()
- 易错点:t = (1) 是整数类型,不是元组
- 访问方式
- 索引访问:与列表一致 → t1[1] → 2
- 分片操作:与列表一致 → t1[5:]、t1[:5]
- 拷贝方式:t2 = t1[:] → 生成元组拷贝
- 修改限制:直接修改元素会报错 → t1[0] = 3 抛出类型错误
元组的更新与删除
- 元组更新(间接方式)
- 原理:通过分片拼接生成新元组,覆盖原变量名
- 示例:t = (1,2,3) → t = t[:2] + (4,) + t[2:] → (1,2,4,3)
- 注意:拼接单个元素时,必须加逗号和括号,否则报错
- 元组删除
- 单个元素删除:无法直接删除,只能通过分片拼接新元组间接实现
- 整个元组删除:使用 del 语句 → del t1
- 回收机制:无变量指向的元组会被 Python 自动回收,无需手动 del
元组支持的操作符
- 拼接操作符(+):左右必须都是元组 → (1,2)+(3,4) → (1,2,3,4)
- 重复操作符(*):生成重复元组 → (1,2)*3 → (1,2,1,2,1,2)
- 比较操作符(>、<、== 等):从索引0开始逐个元素比较
- 成员关系操作符(in、not in):判断元素是否在元组中
- 逻辑操作符(and、or、not):结合比较操作符使用
元组与列表的核心对比
- 可变性:元组不可变,列表可变
- 标识符号:元组靠逗号,列表靠中括号
- 适用场景:元组用于存储不允许修改的数据,列表用于存储需动态调整的数据