3小时入门Python——第十一课索引
有几种类型的集合可以在 Python 中存储数据。元素按位置排序的集合通常称为 sequence,列表和字符串都属于它们。列表中的每个元素以及字符串中的每个字符都具有与其位置相对应的索引。索引用于访问序列中的元素。索引是_从零开始的_,因此,如果您看到一个从零开始计数的人,那么您必须认识一个程序员。
元素索引
要按其索引访问列表的元素,需要使用 方括号。 您可以在列表后添加方括号,然后在方括号之间编写要获取的元素的索引。
别忘了**,** 索引从 0 开始,因此第一个元素的索引为 0。最后一个元素的索引等于 len(list) - 1
。
让我们看下面的例子:
colors = ['red', 'green', 'blue']
first_elem = colors[0] # 'red'
second_elem = colors[1] # 'green'
third_elem = colors[2] # 'blue'
字符串的工作方式相同:
pet = "cat"
first_char = pet[0] # 'c'
second_char = pet[1] # 'a'
third_char = pet[2] # 't'
潜在的陷阱
使用索引时,重要的是要保持序列的范围:IndexError
如果尝试使用不存在的索引访问元素,则会出现错误(称为)!
colors = ['red', 'green', 'blue']
pet = "cat"
print(colors[3]) # IndexError: list index out of range
print(pet[3]) # IndexError: string index out of range
您遇到的又一个障碍。假设您要更改列表中的元素之一。可以很容易做到:
colors = ['red', 'green', 'blue']
colors[1] = 'white'
print(colors) # ['red', 'white', 'blue']
但是,在字符串方面,这种重新分配是不可能的。与列表不同,字符串是不可变的,因此您不能使用索引修改其内容:
pet = "cat"
pet[0] = "b"
# TypeError: 'str' object does not support item assignment
不用担心,经过一些练习,您将不会遇到这些错误。
负指标
访问列表或字符串末尾元素的更简单方法是使用负索引:数字前的减号会以某种方式改变您的观点,并从末尾看序列。因此,在这种情况下,列表的最后一个元素的索引等于 -1,列表的第一个元素的索引 -len(list)
(列表的长度)。
例如:
colors = ['red', 'green', 'blue']
last_elem = colors[-1] # 'blue'
second_elem = colors[-2] # 'green'
first_elem = colors[-3] # 'red'
pet = "cat"
last_char = pet[-1] # 't'
second_char = pet[-2] # 'a'
first_char = pet[-3] # 'c'
如您所见,列表和字符串的作用相同。
如果您编写了不存在的负索引,则也会得到 IndexError
。小心使用索引,以避免代码中出现一次性错误。
下图显示了列表中索引的一般概念: