旅游网站模板文章,720云 wordpress,一键开发小程序,怎么建立一个网站链接Python 的切片#xff0c;语法是这样的a[[start]:[end][:[step]]]其中索引为 end 的元素不会被包括进来。start、end、step 和 step 前面的冒号都可以省略。这么多可以省略的#xff0c;那么解释器是怎么设置默认值的呢#xff1f;解释器对正序和逆序切片的默认值设置是不一…Python 的切片语法是这样的a[[start]:[end][:[step]]]其中索引为 end 的元素不会被包括进来。start、end、step 和 step 前面的冒号都可以省略。这么多可以省略的那么解释器是怎么设置默认值的呢解释器对正序和逆序切片的默认值设置是不一样的。变量 a 长这样a0123456789## 正序切片在正序切片中默认值的设置为start 0end -1 后面一位即切片会返回包括 str 最后一个元素step 1其中 end 的默认值为 -1 后面一位是什么意思呢这里的 -1 指的是 index 为 -1 的元素即 str 的最后一个位置在 a 中指的是 9 这个元素。那它后面一位是无意义的但解释器执行的时候会切片到该元素的前一位即 9。下面是几种正序切片的常见用例a[:-1] 012345678注意这里切片返回的结果不会包括索引为 -1 的元素a[:8] 01234567a[8:] 89a[:8:2]a[0:8:2] 0246## 逆序切片 (step 为负数)逆序切片的默认值就很有意思了不注意的话非常容易混淆搞错边界索引它的默认值是start -1end 0 前面一位即切片会返回包括 str 第一个元素这里的逻辑是从 start 元素开始在其索引上依次加上 step找到下一个索引直到 end所以写逆序切片的时候start 的索引是大于 end 的索引的。a 0123456789a[::-1] 9876543210a[0::-1] 0a[:0:-1]a[-1:0:-1] 987654321a[4::-1] 43210## 总结其实不难反推出来默认的值并不是写死的而是根据 step 值来从 start 或者 end 二者之一来用加上 step 依次推导直到队列最前/最后一个元素的。如果不熟悉的话逆序切片很容易在边界上出错也不直观不易理解最好使用其他等效的操作来替代。