Python 元组
元组(Tuple)是 Python 中的一种不可变序列类型,使用圆括号 () 创建。元组一旦创建,其元素就不能被修改、添加或删除。
1. 创建元组
# 创建空元组
empty_tuple = ()
# 创建包含元素的元组
numbers = (1, 2, 3, 4, 5)
mixed = (1, "hello", 3.14, True)
# 创建单个元素的元组(注意逗号)
single = (1,)
# 使用 tuple() 函数创建元组
tuple_from_list = tuple([1, 2, 3])
2. 元组的特性
- 不可变性:元组创建后不能修改其元素
- 有序性:元组中的元素保持插入顺序
- 允许重复:元组可以包含重复的元素
- 异构性:元组可以包含不同类型的元素
3. 访问元组元素
fruits = ("apple", "banana", "cherry")
# 使用索引访问
first_fruit = fruits[0] # "apple"
# 使用负索引
last_fruit = fruits[-1] # "cherry"
# 切片操作
some_fruits = fruits[1:3] # ("banana", "cherry")
4. 元组操作
# 连接元组
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
combined = tuple1 + tuple2 # (1, 2, 3, 4, 5, 6)
# 重复元组
repeated = tuple1 * 2 # (1, 2, 3, 1, 2, 3)
# 检查元素是否存在
print(2 in tuple1) # True
# 获取元组长度
length = len(tuple1) # 3
5. 元组方法
numbers = (1, 2, 2, 3, 2, 4)
# count() - 计算元素出现次数
count_2 = numbers.count(2) # 3
# index() - 查找元素第一次出现的索引
first_2_index = numbers.index(2) # 1
6. 元组解包
# 基本解包
x, y, z = (1, 2, 3)
# 使用 * 解包
first, *rest = (1, 2, 3, 4, 5)
# first = 1, rest = [2, 3, 4, 5]
# 交换变量值
a, b = 1, 2
a, b = b, a # a = 2, b = 1
7. 元组的应用场景
- 数据保护:当需要确保数据不被修改时
- 作为字典的键:元组可以作为字典的键,而列表不行
- 函数返回值:返回多个值
- 数据打包:将相关数据组合在一起
8. 元组与列表的比较
| 特性 | 元组 | 列表 |
|---|---|---|
| 可变性 | 不可变 | 可变 |
| 语法 | 使用 () | 使用 [] |
| 内存占用 | 较小 | 较大 |
| 性能 | 较快 | 较慢 |
9. 注意事项
- 元组虽然不可变,但如果元组中包含可变对象(如列表),这些可变对象的内容是可以修改的
- 创建单个元素的元组时,必须使用逗号,否则会被解释为普通括号表达式
- 元组比列表更节省内存,因为元组是不可变的,Python 可以对其进行优化
10. 示例:实际应用
# 坐标点
point = (3, 4)
# RGB 颜色
color = (255, 128, 0)
# 数据库记录
record = ("John", 25, "New York")
# 函数返回多个值
def get_coordinates():
return (10, 20)
x, y = get_coordinates()
