切片:
python 中切片是用来切割可迭代对象(容器)
格式:
object[start:end:step]
start: 切片的起始位置,如果没有值的话从头开始
end :切片的结束位置,但是不包含 end (前闭后开),如果没有值的话表示切割到结束为止
step :步长,默认取值为 1 ,如果为正数的情况表示从左往右,如果为负数表示从右往左
object[start:]: 表示从 start 开始切割到结束为止,从左往右
obeject[:end] :表示从开始切割到 end 为止,但是不包含 end, 从左往右
obeject[start:end] :表示从 start 开始到 end 结束,但是不包含 end, 从左往右
object[start:end:step]: 表示从 start 开始到 end 结束,但是不包含 end,step 为正从左往右,负从右往左
1. 切割单个值
a = [0,1,2,3,4,5,6,7,8]
print(a[6])
结果:6
2. 切割完整对象
a = [0,1,2,3,4,5,6,7,8]
print(a[::])
print(a[::-1])
结果:
0,1,2,3,4,5,6,7,8
8,7,6,5,4,3,2,1,0
3. start和end全部取正数的情况
a = [0,1,2,3,4,5,6,7,8]
print(a[6:])
print(a[7:4:-1])
print(a[7::-1])
结果:
6,7,8
7,6,5
7,6,5,4,3,2,1,0
4.start和end全部取负数的情况
a = [0,1,2,3,4,5,6,7,8]
print(a[-6::])
print(a[:-6])
print(a[-1:])
print(a[-1:-4])
print(a[-5:-4])
结果
3,4,5,6,7,8
0,1,2
8
空集
4
5. start和end正负混合情况
a = [0,1,2,3,4,5,6,7,8]
print(a[1:-6:])
print(a[1:-6:-1])
print(a[-1:6])
print(a[-1:6:-1])
结果:
1,2
空集
空集
8,7
6. 切片中的三个参数为表达式
a = [0,1,2,3,4,5,6,7,8]
print(a[1+1:1*3:1*1])
7. 切片可以操作其他的对象
for i in range(0,100)[2::2][-10:-1]:
print(i)
结果:
80,82,84,86,88,90,92,94,96,98