1. 切片的含义
python中切片是用来切割可迭代对象(例:容器),一个完整的切片是包含三个参数和冒号的,语法为:object[start : end : step],object表示要切片的目标;start表示切片的起始位置,如果没有值的话就会从头开始算起;end表示切片的结束位置,但不包含end位置的脚标(是一个前闭后开的结构);step表示步长,默认取值为1,如果为正数的情况就表示从左往右,如果为负数就表示从右往左
注: 如果在切片的时候,超出下标不会报错:如果切片的操作方向相互矛盾的时候不会报错,返回的值为空
2. 切片操作展示
1.python 切片语法的解释
object[start:] #表示从start开始切割到结束,顺序是从左往右
object[:end] #表示从最开始切割到end结束,但是不包含end,顺序是从左往右
object[start:end] #表示从start开始切割到end结束,不包含end,顺序从左往右
object[start:end:step] #表示从start开始切割到end结束,不包含end,如果step为正数,顺序从左往右,如果为负数,顺序从右往左
2.切割单个值
a = [0,1,2,3,4,5,6,7,8,9]
print(a[3])
3
3.切割完整对象
当start、end、step的默认值为1的时候和step默认值为-1的时候
a = [0,1,2,3,4,5,6,7,8,9]
print(a[:]) #默认值为1
print(a[::]) #默认值为1
print(a[::-1])#step值为-1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (step值为-1)
3.start和end都为正数的时候
a = [0,1,2,3,4,5,6,7,8,9]
print(a[6:])
print(a[:6])
print(a[1:6])
print(a[6::-1])
print(a[1:6:1])
print(a[6:1:-1])
[6, 7, 8, 9]
[0, 1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[6, 5, 4, 3, 2, 1, 0]
[1, 2, 3, 4, 5]
[6, 5, 4, 3, 2]
4.start和end都为负数的时候
a = [0,1,2,3,4,5,6,7,8,9]
print(a[:-6])
print(a[-6:-1])
print(a[:-6:-1])
print(a[-6::-1])
print(a[-1:-6:-1])
[0, 1, 2, 3]
[4, 5, 6, 7, 8]
[9, 8, 7, 6, 5]
[4, 3, 2, 1, 0]
[9, 8, 7, 6, 5]
5.当start和end正负数混合的时候
a = [0,1,2,3,4,5,6,7,8,9]
print(a[1:-6])
print(a[-1:6:-1])
[1, 2, 3]
[9, 8, 7]
6.连续的切片
a = [0,1,2,3,4,5,6,7,8,9]
print(a[1:8][1:5][3:1:-1])
[5, 4]
7.切片当中的参数用表达式表达
a = [0,1,2,3,4,5,6,7,8,9]
print(a[1+1:2*4:7%2])
[2, 3, 4, 5, 6, 7]
8.切片对其他对象的操作
a = "Hellow!"
print(a[1:5])
for i in range(1,100)[55:60]:
print(i)
ello
56
57
58
59
60
9.切片中常出现的错误
超出下标
a = [0,1,2,3,4,5,6,7,8,9]
print(a[1:11])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
方向相互矛盾
a = [0,1,2,3,4,5,6,7,8,9]
print(a[1:6:-1]) #start、end都为正数
print(a[-1:-6]) #start、end都为负数
# start、end正负数混合
print(a[1:-6:-1])
print(a[-1:6])
[]
[]
[]
[]