切片是Python语言的特性之一。无论是字符串还是数组都可以使用切片操作快速高效的获得目标值。使用起来也比较简单:
object[ start_index : end_index : step ]
start_index是起始索引,可正可负可省略,取值时包含该索引的值
end_index是终止索引,可正可负可省略,取值时不包含该索引的值
step是取值步长,可正可负可省略,正数时表示从左向右取值,负数时表示从右向左取值,省略时表示+1
越简单的东西越容易忽略,也就越容易犯错误,对,说的就是我!下面结合下方的例子,看一下几个切片操作。
1 | num_list = [i for i range(10)] |
则这10个数的索引情况为:
| 值 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| 正索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 负索引 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
在写切片或者分析切片的时候,按照以下流程分析:
先看
step正负决定方向,再看step数字决定步长锁定
start_index,正数走正索引,负数走负索引锁定
end_index,正数走正索引,负数走负索引;同时从start_index出发,沿步骤1中的方向能否走到end_index。若能,执行切片操作;若不能,返回空。
1 | num_list[1:-6:1] |
再复杂的切片我也不怕了!(插个腰)