4. 元组

元组是不可变的有序序列,一旦创建就不能修改。使用 () 创建。

python
t1 = (35, 12, 98)
t2 = ('张三', 25, True, '北京')

# 索引和切片(与列表相同)
print(t1[0])    # 35
print(t2[:2])   # ('张三', 25)

# 元组不可变
# t1[0] = 100  # TypeError!

# 单元素元组必须加逗号
a = (100)       # 这是整数,不是元组
b = (100,)      # 这才是元组
print(type(a))  # 
print(type(b))  # 

▶ 运行结果:

输出
35
('张三', 25)
<class 'int'>
<class 'tuple'>

打包与解包

python
# 打包:多个值赋给一个变量,自动成元组
a = 1, 10, 100
print(a)  # (1, 10, 100)

# 解包:元组赋给多个变量
i, j, k = a
print(i, j, k)  # 1 10 100

# 星号表达式:接收多余的值
a, b, *c = 1, 2, 3, 4, 5
print(a, b, c)  # 1 2 [3, 4, 5]

# 变量交换(Python 特色,无需中间变量)
a, b = b, a

▶ 运行结果:

输出
(1, 10, 100)
1 10 100
1 2 [3, 4, 5]
💡 元组 vs 列表

元组创建速度比列表快约 8 倍(不可变类型更轻量)。当数据不需要修改时,优先使用元组。元组可以作为字典的键和集合的元素,列表不行。