Python 元组(Tuple)详解

元组基本特性

定义与特点

  • 不可变序列:创建后不能修改
  • 有序集合:元素按插入顺序存储
  • 异构数据:可以存储不同类型的数据
  • 允许嵌套:可以包含列表等可变对象

基本示例

1
2
3
t = (1, 1.2, 'bage', [555, 666])  # 创建元组
t[3][0] = 999999 # 修改元组中的列表元素
print(t) # 输出: (1, 1.2, 'bage', [999999, 666])

关键点

  • 虽然元组不可变,但包含的可变对象(如列表)可以修改
  • 使用圆括号 ()定义,逗号才是关键

元组类型转换

其他类型转元组

1
2
3
4
5
6
7
8
# 列表转元组
print(tuple([1, 2, 3])) # 输出: (1, 2, 3)

# 集合转元组
print(tuple({1, 2, 3})) # 输出: (1, 2, 3)

# 字符串转元组
print(tuple('123')) # 输出: ('1', '2', '3')

转换规则

原始类型 转换结果 说明
列表(list) 元组 元素顺序不变
集合(set) 元组 元素顺序可能改变
字符串(str) 元组 每个字符转为单独元素
字典(dict) 元组 仅转换键(key)

元组操作

基本操作

1
2
3
4
5
6
7
8
9
10
11
# 创建单元素元组(注意逗号)
single = (1,)

# 索引访问
print(t[0]) # 输出第一个元素

# 切片操作
print(t[1:3]) # 输出第2-3个元素

# 长度获取
print(len(t)) # 输出元素个数

元组方法

方法 描述 示例
count() 统计元素出现次数 t.count(1)
index() 返回元素索引 t.index('bage')

元组 vs 列表

特性 元组 列表
可变性 不可变 可变
语法 圆括号 () 方括号 []
性能 更快 稍慢
用途 固定数据 动态数据
内存 更小 更大

使用场景建议

  1. 数据保护:确保数据不被意外修改
  2. 字典键:作为字典的键(列表不能)
  3. 函数返回:多值返回的理想选择
  4. 性能优化:数据不变时优先使用

注意事项

  1. 创建单元素元组必须加逗号:(1,)

  2. 空元组:t = ()

  3. 虽然不可变,但可以重新赋值:

    1
    2
    t = (1, 2)
    t = (3, 4) # 这是合法的