最常见的访问 Python 元组内部值的方式是使用索引,我们只需要在方括号 []
中指定我们需要检索的元素的索引即可。
在 Python 中,元组是一个不可变的有序元素集合。“不可变”意味着一旦元组被创建,我们就不能修改或更改其内容。我们可以使用元组来组合相关数据元素,类似于列表,但关键的区别在于元组是不可变的,而列表是可变的。
除了索引之外,Python 还提供了多种其他方式来访问元组中的项,例如切片、负索引、从元组中提取子元组等。让我们逐一来看这些方法。
使用索引访问元组项
元组中的每个元素都对应一个索引。索引从 0 开始,对于第一个元素,随后的每个元素递增 1。元组中最后一个元素的索引总是 “长度-1”,其中 “长度” 表示元组中项目的总数。要访问元组的元素,我们只需要指定需要访问/检索的项的索引,如下所示:
tuple[3]
示例
以下是一个基本示例,展示如何使用索引切片来访问元组项:
tuple1 = ("Rohan", "Physics", 21, 69.75)
tuple2 = (1, 2, 3, 4, 5)
print("Item at 0th index in tuple1: ", tuple1[0])
print("Item at index 2 in tuple2: ", tuple2[2])
它将产生如下输出:
Item at 0th index in tuple1: Rohan
Item at index 2 in tuple2: 3
使用负索引访问元组项
Python 中的负索引用于从元组的末尾访问元素,其中 -1 指的是最后一个元素,-2 指的是倒数第二个元素,以此类推。
我们也可以使用负整数来表示从元组末尾的位置来访问元组项。
示例
在下面的示例中,我们使用负索引来访问元组项:
tup1 = ("a", "b", "c", "d")
tup2 = (25.50, True, -55, 1+2j)
print("Item at 0th index in tup1: ", tup1[-1])
print("Item at index 2 in tup2: ", tup2[-3])
我们得到的输出如下:
Item at 0th index in tup1: d
Item at index 2 in tup2: True
使用负索引访问元组项范围
通过元组项范围,我们的意思是使用切片来访问元组中的一部分元素。因此,我们可以通过在 Python 中使用切片操作来使用负索引来访问一系列元组项。
示例
在下面的示例中,我们使用负索引来访问一系列元组项:
tup1 = ("a", "b", "c", "d")
tup2 = (1, 2, 3, 4, 5)
print("Items from index 1 to last in tup1: ", tup1[1:])
print("Items from index 2 to last in tup2", tup2[2:-1])
它将产生如下输出:
Items from index 1 to last in tup1: ('b', 'c', 'd')
Items from index 2 to last in tup2: (3, 4)
使用切片操作符访问元组项
Python 中的切片操作符用于从元组中获取一个或多个项。我们可以通过指定想要提取的索引范围来使用切片操作符来访问元组项。它使用以下语法:
[start:stop]
其中,
示例
在下面的示例中,我们从 "tuple1" 中索引 1 到最后的子元组,从 "tuple2" 中索引 0 到 1 的项,并检索 "tuple3" 中的所有元素:
tuple1 = ("a", "b", "c", "d")
tuple2 = (25.50, True, -55, 1+2j)
tuple3 = (1, 2, 3, 4, 5)
tuple4 = ("Rohan", "Physics", 21, 69.75)
print("Items from index 1 to last in tuple1: ", tuple1[1:])
print("Items from index 0 to 1 in tuple2: ", tuple2[:2])
print("Items from index 0 to index last in tuple3", tuple3[:])
以上代码的输出如下:
Items from index 1 to last in tuple1: ('b', 'c', 'd')
Items from index 0 to 1 in tuple2: (25.5, True)
Items from index 0 to index last in tuple3 ('Rohan', 'Physics', 21, 69.75)
从元组中访问子元组
子元组是原始元组的一部分,由连续的一系列元素组成。
我们可以通过使用带有适当起始和停止索引的切片操作符来从元组中访问子元组。它使用以下语法:
my_tuple[start:stop]
其中,
如果我们不提供任何索引,则切片操作符默认从索引 0 开始,并在元组的最后一个项处停止。
示例
在这个示例中,我们使用切片操作符从 "tuple1" 中索引 “1 到 2” 和 "tuple2" 中索引 “0 到 1” 来获取子元组:
tuple1 = ("a", "b", "c", "d")
tuple2 = (25.50, True, -55, 1+2j)
print("Items from index 1 to 2 in tuple1: ", tuple1[1:3])
print("Items from index 0 to 1 in tuple2: ", tuple2[0:2])
得到的输出如下:
Items from index 1 to 2 in tuple1: ('b', 'c')
Items from index 0 to 1 in tuple2: (25.5, True)