Python实践63-为什么不建议切片时同时指定start, end和stride

步进切片

  • python允许实现步进切片,形式是mylist[start, end, stride]
  • 含义是从start开始到end(不包含end位置)的元素里面,每隔步进stride取一个元素
  • 例如a= [1, 2, 3, 4], a[::2]的结果就是[1, 3]
  • 其中的步进stride可以是负数,一个常用方法就是b = a[::-1]来获得a的倒序列表

不建议切片时同时指定start, end和stride

  • 三个参数同时指定,会导致代码难以理解,因为三个条件同时满足的结果可能和你指定的参数并不完全相关
  • 最好不要使用负数的步进,因为不宜理解
  • 如果非要执行范围切割和步进切割,最好拆成两条赋值语句。一个进行范围切割,一个做步进切割。

代码下载

本系列文章和代码已经作为项目归档到github,仓库地址:jumper2014/PyCodeComplete。大家觉得有帮助就请在github上star一下,你的支持是我更新的动力。什么?你没有github账号?学习Python怎么可以没有github账号呢,快去注册一个啦!