元组是Python中不可变的有序序列,与列表类似但创建后不能修改。以下是元组的常用操作方法:
1. 创建元组
python
# 空元组
empty_tuple = ()
# 单元素元组(注意逗号)
single_tuple = (1,) # 必须有逗号,否则不是元组
# 多元素元组
my_tuple = (1, 2, 3, 'a', 'b')
print(my_tuple)
# (1, 2, 3, 'a', 'b')
another_tuple = tuple([1, 2, 3]) # 从列表转换
print(another_tuple)
# (1, 2, 3)
2. 基本操作
python
t = (1, 2, 3, 4, 5)
# 索引访问
print(t[0]) # 输出: 1
# 切片操作
print(t[1:3]) # 输出: (2, 3)
# 长度
print(len(t)) # 输出: 5
# 连接元组
new_t = t + (6, 7)
print(new_t) # 输出: (1, 2, 3, 4, 5, 6, 7)
# 重复元组
repeat_t = t * 2
print(repeat_t) # 输出: (1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
3. 元组方法
由于元组不可变,方法较少:
python
t = (1, 2, 2, 3, 4)
# count() - 统计元素出现次数
print(t.count(2)) # 输出: 2
# index() - 返回元素第一次出现的索引
print(t.index(3)) # 输出: 3
4. 元组解包
python
# 基本解包
a, b, c = (1, 2, 3)
print(a, b, c) # 输出: 1 2 3
# 使用*收集剩余元素
first, *middle, last = (1, 2, 3, 4, 5)
print(first) # 输出: 1
print(middle) # 输出: [2, 3, 4]
print(last) # 输出: 5
5. 元组转换
python
# 列表转元组
arr = [1, 2, 3]
t = tuple(arr)
print(t) # (1, 2, 3)
# 元组转列表
new_list = list(t)
print(new_list) # [1, 2, 3]
6. 遍历元组
python
t = (1, 2, 3, 4)
# 直接遍历
for item in t:
print(item) # 1,2,3,4
# 带索引遍历
for index, value in enumerate(t):
print(f"Index: {index}, Value: {value}")
# Index: 0, Value: 1
# Index: 1, Value: 2
# Index: 2, Value: 3
# Index: 3, Value: 4
7. 元组作为字典键
由于元组不可变,可以作为字典的键:
python
locations = {
(35.6895, 39.6917): "Tokyo",
(40.7128, 74.0060): "New York"
}
8. 不可变性说明
元组一旦创建,不能修改其内容:
python
t = (1, 2, 3)
# t[0] = 10 # 会引发TypeError
但若元组包含可变对象(如列表),这些可变对象可以修改:
python
t = (1, [2, 3], 4)
t[1].append(5) # 可以,因为修改的是列表
print(t) # 输出: (1, [2, 3, 5], 4)
元组的不可变性使其适合用作字典键或在需要保证数据不被修改的场景中使用。