在 Python 中,列表是一个元素或对象的序列,即有序的对象集合。类似于数组,列表中的每个元素对应一个索引。
为了访问列表内的值,我们需要使用方括号 "[]"
符号,并指定我们想要检索的元素的索引。
索引从第一个元素的 0 开始,并且对于随后的每个元素递增 1。列表中最后一个项的索引始终是 "长度-1",其中 "长度" 表示列表中的总项数。 除此之外,Python 还提供了多种其他方式来访问列表项,如切片、负索引、从列表中提取子列表等。让我们逐一来看。
使用索引访问列表项
正如上面所讨论的那样,使用索引来访问列表中的项,只需要在方括号 ("[]"
) 中指定元素的索引,如下所示:
mylist[4]
示例
下面是一个基本的例子来访问列表项:
list1 = ["Rohan", "Physics", 21, 69.75]
list2 = [1, 2, 3, 4, 5]
print("Item at 0th index in list1: ", list1[0])
print("Item at index 2 in list2: ", list2[2])
它将产生以下输出:
Item at 0th index in list1: Rohan
Item at index 2 in list2: 3
通过我们的 Python 认证课程,通过真实项目深入学习 Python。报名并成为认证专家,提升您的职业生涯。
使用负索引访问列表项
Python 中的负索引用于从列表的末尾访问元素,其中 -1
指代最后一个元素,-2
指代倒数第二个元素,以此类推。
我们也可以通过使用负整数来代表列表末尾的位置来访问列表项。
示例
在下面的例子中,我们使用负索引来访问列表项:
list1 = ["a", "b", "c", "d"]
list2 = [25.50, True, -55, 1+2j]
print("Item at 0th index in list1: ", list1[-1])
print("Item at index 2 in list2: ", list2[-3])
我们得到的输出如下:
Item at 0th index in list1: d
Item at index 2 in list2: True
使用切片操作符访问列表项
Python 中的切片操作符用来获取一个或多个列表项。我们可以通过指定想要提取的索引范围来使用切片操作符访问列表项。它的语法如下:
[start:stop]
其中,
如果我们没有提供任何索引,切片操作符默认从索引 0 开始并停止于列表的最后一项。
示例
在下面的例子中,我们从 list1
的索引 1 到最后,从 list2
的索引 0 到 1,以及从 list3
的索引 0 到最后一个元素提取子列表:
list1 = ["a", "b", "c", "d"]
list2 = [25.50, True, -55, 1+2j]
list3 = ["Rohan", "Physics", 21, 69.75]
print("Items from index 1 to last in list1: ", list1[1:])
print("Items from index 0 to 1 in list2: ", list2[:2])
print("Items from index 0 to index last in list3", list3[:])
以上代码的输出如下:
Items from index 1 to last in list1: ['b', 'c', 'd']
Items from index 0 to 1 in list2: [25.5, True]
Items from index 0 to index last in list3 ['Rohan', 'Physics', 21, 69.75]
从列表中访问子列表
子列表是列表的一部分,由原始列表中的连续元素序列组成。我们可以通过使用适当的开始和结束索引来访问列表中的子列表。
示例
在这个例子中,我们使用切片操作符从 list1
的索引 "1 到 2" 和 list2
的索引 "0 到 1" 获取子列表:
list1 = ["a", "b", "c", "d"]
list2 = [25.50, True, -55, 1+2j]
print("Items from index 1 to 2 in list1: ", list1[1:3])
print("Items from index 0 to 1 in list2: ", list2[0:2])
我们获得的输出如下:
Items from index 1 to 2 in list1: ['b', 'c']
Items from index 0 to 1 in list2: [25.5, True]