元组(Tuple)是Python中的另一种重要的数据结构,类似于列表,但有一些关键区别。元组是不可变的,意味着一旦创建,就不能修改其内容。
创建元组:
可以使用圆括号()
来创建一个元组,其中包含逗号分隔的元素。
empty_tuple = () # 创建一个空元组
fruits = ("苹果", "香蕉", "橙子") # 创建一个包含元素的元组
访问元组元素:
元组的元素可以使用索引来访问,索引仍然从0开始。
fruits = ("苹果", "香蕉", "橙子")
first_fruit = fruits[0] # 获取第一个元素,即 "苹果"
second_fruit = fruits[1] # 获取第二个元素,即 "香蕉"
元组长度:
可以使用内置函数len()
来获取元组中元素的数量。
fruits = ("苹果", "香蕉", "橙子")
num_fruits = len(fruits) # 获取元组中元素的数量,即 3
元组基本操作:
元组不可变,因此不能像列表那样添加、删除或修改元素。但可以执行以下操作:
1. 元组合并:
可以使用+
运算符将两个元组合并成一个新元组。
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
combined_tuple = tuple1 + tuple2 # 合并成 (1, 2, 3, 4, 5, 6)
2. 复制元组:
使用*
运算符复制元组中的元素。
tuple1 = (1, 2, 3)
copied_tuple = tuple1 * 2 # 复制元素,得到 (1, 2, 3, 1, 2, 3)
3. 元组切片:
可以使用切片操作来获取元组中的子元组。
numbers = (1, 2, 3, 4, 5)
subtuple = numbers[1:4] # 获取从索引1到3的子元组,即 (2, 3, 4)
元组不可变性:
由于元组是不可变的,因此一旦创建,就不能修改其内容。这意味着您不能添加、删除或更改元组中的元素。这在某些情况下是有用的,特别是当您希望确保数据的不可变性时。
fruits = ("苹果", "香蕉", "橙子")
# 以下操作会引发 TypeError
# fruits[0] = "梨子" # 尝试修改元素
# fruits.append("草莓") # 尝试添加元素
# del fruits[1] # 尝试删除元素
元组的运算符
1. 合并运算符(+)
合并两个元组,生成一个新的元组,包含两个元组的所有元素。
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
combined_tuple = tuple1 + tuple2
# combined_tuple 的值为 (1, 2, 3, 4, 5, 6)
2. 重复运算符(*)
复制一个元组的内容多次,生成一个新的元组。
tuple1 = (1, 2, 3)
copied_tuple = tuple1 * 2
# copied_tuple 的值为 (1, 2, 3, 1, 2, 3)
3. 成员运算符(in 和 not in)
用于检查元素是否存在于元组中。
fruits = ("苹果", "香蕉", "橙子")
result1 = "苹果" in fruits # True,因为 "苹果" 存在于元组中
result2 = "草莓" not in fruits # True,因为 "草莓" 不存在于元组中
4. 比较运算符
可以用于比较两个元组的大小(按元素顺序比较)。
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
result = tuple1 < tuple2 # True,因为 (1, 2, 3) 在元组排序中位于 (4, 5, 6) 之前
元组内置函数
函数 | 描述 |
---|---|
len(tuple) |
返回元组中元素的数量。 |
max(tuple) |
返回元组中的最大元素。 |
min(tuple) |
返回元组中的最小元素。 |
tuple(seq) |
将序列 seq 转换为元组。 |
示例代码
1. len(tuple)
– 返回元组中元素的数量。
fruits = ("苹果", "香蕉", "橙子")
num_fruits = len(fruits) # num_fruits 的值为 3
2. max(tuple)
– 返回元组中的最大元素。
numbers = (12, 45, 8, 27, 60)
max_number = max(numbers) # max_number 的值为 60
3. min(tuple)
– 返回元组中的最小元素。
numbers = (12, 45, 8, 27, 60)
min_number = min(numbers) # min_number 的值为 8
4. tuple(seq)
– 将序列 seq
转换为元组。
list_seq = [1, 2, 3, 4, 5]
tuple_from_list = tuple(list_seq) # tuple_from_list 的值为 (1, 2, 3, 4, 5)
string_seq = "Python"
tuple_from_string = tuple(string_seq) # tuple_from_string 的值为 ('P', 'y', 't', 'h', 'o', 'n')
元组遍历与索引访问
1. 遍历元组元素:
可以使用 for
循环来遍历元组中的元素:
fruits = ("苹果", "香蕉", "橙子")
for fruit in fruits:
print(fruit)
这将输出:
苹果
香蕉
橙子
2. 使用索引访问元组元素:
可以使用索引来访问元组中的单个元素,索引从0开始:
fruits = ("苹果", "香蕉", "橙子")
first_fruit = fruits[0] # 获取第一个元素,即 "苹果"
second_fruit = fruits[1] # 获取第二个元素,即 "香蕉"
3. 遍历元组并获取索引:
如果需要同时访问元组的元素和它们的索引,可以使用 enumerate()
函数:
fruits = ("苹果", "香蕉", "橙子")
for index, fruit in enumerate(fruits):
print(f"索引 {index}: {fruit}")
这将输出:
索引 0: 苹果
索引 1: 香蕉
索引 2: 橙子