python的切片操作适用于有索引的数据结构
切片方式
python的切片一般包含三个参数,start_index、end_index、step
step的方向应与start_index—>end_index的方向一致
切片举例
1.切取单个元素
#当索引只有一个数时,表示切取某一个元素。
>>>a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>a[0]
>>>0
>>>a[-4]
>>>6
2.切取整个对象
>>>a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>a[:] #从左往右,等效于copy()
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>a[::]#从左往右
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>a[::-1]#从右往左
>>> [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3.切取部分对象
#step=1,从左往右取值,start_index=1到end_index=6同样表示从左往右取值。
>>>a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>a[1:6]
>>> [1, 2, 3, 4, 5]
>>>a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>a[1:6:-1]
>>> []
输出为空列表,说明没取到数据。
step=-1,决定了从右往左取值,而start_index=1到end_index=6决定了从左往右取值,两者矛盾,所以为空。
>>>a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>a[6:2]
>>> []
同样输出为空列表。
step=1,决定了从左往右取值,而start_index=6到end_index=2决定了从右往左取值,两者矛盾,所以为空。
>>>a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>a[:6:-1]
>>> [9, 8, 7]
step=-1,从右往左取值,而start_index省略时,表示从端点开始,因此这里的端点是“终点”,即从“终点”值9开始一直取到end_index=6(该点不包括)。
>>>a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>a[6:]
>>> [6, 7, 8, 9]
step=1,从左往右取值,从start_index=6开始,一直取到“终点”值9。
>>>a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>a[:6]
>>> [0,1,2,3,4,5]
step=1,从左往右取值,从start_index=0开始,一直到end_index=6(但不包含该点)。
常用切片操作
1.取偶数位置
>>>a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>b = a[::2]
[0, 2, 4, 6, 8]
2.取奇数位置
>>>a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>b = a[1::2]
[1, 3, 5, 7, 9]
3.取整个对象
>>>a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>b = a[:]