列表的切片操作是指从一个大列表中,根据位置特点获取部分元素,组成一个子列表进行返回。语法形式如下:
列表对象 [start : end : step]
-
start表示起始位置索引,省略时表示包含end前的所有元素;
-
end表示结束位置索引,但结果中不包含结束位置对应的元素,省略时表示包含start后的所有元素;
-
step表示是步长,默认为1,步长可以是正数也可以是负数,正数表示从左到右,负数表示从右到左。
分片的相关操作
首先创建一个1-9的序列:a_list = list(range(1, 10))
相关代码和结果如下:
>>>a_list = list(range(1,10)) #创建序列
>>>print(a_list)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>print(a_list[2:]) #打印序列从第3个开始的所有元素
[3, 4, 5, 6, 7, 8, 9]
>>>print(a_list[:2]) #打印序列第1-2个元素
[1, 2]
>>>print(a_list[2:6]) #打印序列第3-6个元素
[3, 4, 5, 6]
>>>print(a_list[2:6:2]) #打印第3、5个元素(步长为2,表示每两个元素取一个)
[3, 5]
>>>print(a_list[2:6:-2]) #步长为负数时,start需要大于end,否则返回值为空
[]
>>>print(a_list[6:2:-2]) #从序列第7个元素反向切片到第3个元素(不含)
[7, 5]
>>>print(a_list[6::-1]) #从右到左打印序列第7个元素左边的所有元素
[7, 6, 5, 4, 3, 2, 1]
>>>print(a_list[:6:-1]) #从右到左打印序列第7个元素(不含)右边的所有元素
[9, 8]
>>>print(a_list[-8:6:2]) #步长为2,从索引-8的元素(就是从右往左数第8个元素)正向切片到第6个元素
[2, 4, 6]
>>>print(a_list[:]) #打印序列所有元素,可用来进行序列的复制操作
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>print(a_list[::-1]) #从右到左打印序列所有元素
>>>a_list.reverse() #reverse()函数能实现一样的效果
>>>print(a_list)
[9, 8, 7, 6, 5, 4, 3, 2, 1]
[9, 8, 7, 6, 5, 4, 3, 2, 1]