索引:
序列的所有元素都是有编号的,编号从0开始递增,这个编号就是索引。
Python也提供负数索引,作用是从最后一个元素开始,反向索引。
索引的有效范围为[-n, n - 1],如果索引值不在这个范围内, 则会导致IndexError:index out of range
分片:
分片通过冒号相隔的两个索引来访问一定范围内的元素。
我们通过例子说明
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(1) numbers[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] #整个列表
(2) numbers[3:5]
[4, 5] #包括起始索引对应的元素,但不包括截至索引对应的元素
(3) numbers[-5:-3]
[6, 7] #注意索引的顺序
(4) numbers[3,3]
[] #空列表
(5) numbers[-5, 9]
[6, 7, 8, 9] #混合正负索引
(6) numbers[-20, 20]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] #好像不存在index out of range的问题
(7) numbers[8, -8]
[] #索引区间为空
关于步长,比较好理解,以上的情况都是默认的步长为1的情况。
分片赋值:
关于分片赋值,理解两点就不会有别扭的感觉了。
(1) 分片决定了列表中哪些值会被覆盖掉
(2) 分片的第一个索引决定了新值会被插入列表中的什么位置。