列表是有序的,列表中的每个元素都有唯一标号,即对应的索引。索引一般是以0开始的,这与很多度量工具的起始值一致,如米尺也是从0开始的。列表的索引除了可以从左到右标识,也可以从右到左标识,但此时索引为负数。列表中各元素与对应索引的关系可参考图3-1。图3-1中列表a的索引从左到右标识,第1个索引为0,第2个索引为1,以此类推。
图3-1 列表a中元素与正索引的对应关系
对列表a中的元素,也可以从右到左标识,最右这个元素的索引是-1(注意不是0,否则将与从左到右的第1个索引发生冲突),以此类推,具体可参考图3-2。
图3-2 列表a中元素与负索引的对应关系
了解了列表中元素与对应索引的关系,获取列表中的元素就非常简单了。
从列表中提取单个元素,直接指定对应索引即可,示例如下。
一次从列表中提取多个连续元素可以用冒号,具体示例如下。
打印结果如下。
以上介绍了如何查看列表的部分元素,如果需要遍历所有元素或同时获取列表的元素及对应索引,该如何处理呢?这样的场景在数据分析、数据处理中经常会遇到。要遍历所有元素,可以使用for循环(for循环将在第4章介绍);同时查看列表的索引和对应元素,可以使用enumerate()函数。以下是实现遍历列表的具体代码。
打印结果如下。
访问列表时经常会遇到list index out of range这个问题,出现这个问题的原因,主要是访问的索引超出列表范围。比如,访问一个只有4个元素的列表,但索引却大于4;访问一个空列表也会报这个错误,具体可参考以下代码。
为避免这类问题,可以用len()得到列表的元素个数n,然后用小于n的索引去访问列表。