任何一个切片操作转化为一个基本表达式:object[start_index:end_index:step]
start_index:起始点下标,若空为起始端点
end_index:终止点下标,若空为终点下标
step:表示步长,默认值为1,负值为反方向步长
使用案例
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 切取单个元素,返回一个值
>>>a[0]
>>>0
- 切取整个对象,相当于先拷贝
>>>a[:] #从左往右
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- start_index和end_index正(+)负(-)混合索引的情况
>>>a[1:-6]
>>> [1, 2, 3]
- 多层切片操作(理论上可以无限次操作)
>>>a[:8][2:5][-1:]
>>> [4]
- 元组\字符串也适合切片操作
>>> (0, 1, 2, 3, 4, 5)[:3]
>>> (0, 1, 2)
>>>>'ABCDEFG'[::2]
>>>'ACEG'
- 取偶数位置元素
>>>b = a[::2]
[0, 2, 4, 6, 8]
- 取奇数位置元素
>>>b = a[1::2]
[1, 3, 5, 7, 9]
- 修改单个元素(可以将其他类型代入)
>>>a[3] = ['A','B']
[0, 1, 2, ['A', 'B'], 4, 5, 6, 7, 8, 9]
- 在某个位置插入元素(同一层)
>>>a[3:3] = ['A','B','C']
[0, 1, 2, 'A', 'B', 'C', 3, 4, 5, 6, 7, 8, 9]
- 替换一部分元素
>>>a[3:6] = ['A','B']
[0, 1, 2, 'A', 'B', 6, 7, 8, 9]