为了方便大家拷贝笔记,本文采用md源码格式
# 切片
>切片的语法表达式为:[start_index:end_index:step]
>切片不会改变原对象,而是重新生成一个新的对象
- start_index:表示起始索引
- end_index:表示结束索引
- step:表示步长,步长不能为0,默认为1
>切片操作是指按照步长,截取从起始索引到结束索引,但不包含结束索引(也就是顾头不顾尾)的所有元素
# 切片函数(slice)
>使用切片函数实现:slice(start,stop,step)
## 省略start_index,保留end_index
```
#从开始到第(5-1)个索引
C = ['A','B','C','D','E','F']
print(C[:5])
['A', 'B', 'C', 'D', 'E']
```
## 保留start_index,省略end_index
```
#从开始索引到最后一个索引
C = ['A','B','C','D','E','F']
print(C[1:])
['B', 'C', 'D', 'E','F']
```
## 省略start_index、end_index和step
```
#表示切片切整个序列,也就是复制一个新的序列
a=['a','b','c','d','e','f']
print(a[:])
print(a[::])
['a', 'b', 'c', 'd', 'e', 'f']
['a', 'b', 'c', 'd', 'e', 'f']
```
## 省略start_index、end_index,保留step
```
#表示对整个序列,按照步长整除的规则取值
a=['a','b','c','d','e','f']
print(a[::2])
['a', 'c', 'e']
```
## 其他
```
#步长设置为-1,就得到一个反序列
a=['a','b','c','d','e','f']
print(a[::-1])
['f', 'e', 'd', 'c', 'b', 'a']
#只要起始值start_index到结束值end_index在step方向中间有值,就有返回值:
C = ['A','B','C','D','E','F']
# 下面这四种表达式是等价的:
print(C[0:3])
print(C[0:-3]) #等价于C[0:3:1]
print(C[-6:3])
print(C[-6:-3])
['A', 'B', 'C']
['A', 'B', 'C']
['A', 'B', 'C']
['A', 'B', 'C']
#start_index到end_index的方向与步长step的方向
C = ['A','B','C','D','E','F']
0 1 2 3 4 5 正(index)
-6 -5 -4 -3 -2 -1 反(index)
print(C[3:0:1])
print(C[3:0:-1])
print(C[0:3:-1])
print(C[-6:-3:-1])
[]
['D', 'C', 'B']
[]
[]
```