小甲鱼Python学习笔记

元组的核心定位

  • 副标题:戴上了枷锁的列表
  • 核心区别:元组不可修改,列表可自由增删改
  • 特性类比:与字符串一致,不支持原地排序等修改操作

元组的创建与访问

  • 创建语法
    • 标准写法:小括号括起元素,逗号分隔 → 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):结合比较操作符使用

元组与列表的核心对比

  • 可变性:元组不可变,列表可变
  • 标识符号:元组靠逗号,列表靠中括号
  • 适用场景:元组用于存储不允许修改的数据,列表用于存储需动态调整的数据