python切片逆序_Python 的逆序同时切片如何操作?
`Python` 的切片,语法是这样的
a[[start]:[end][:[step]]]
其中索引为 end 的元素不会被包括进来。`start`、`end`、`step` 和 `step 前面的冒号`都可以省略。这么多可以省略的,那么解释器是怎么设置默认值的呢?解释器对正序和逆序切片的默认值设置是不一样的。
变量 `a` 长这样:
a="0123456789"
## 正序切片
在正序切片中,默认值的设置为start = `0`
end = `-1 后面一位`,即切片会返回包括 str 最后一个元素
step = `1`
其中 `end` 的默认值为 `-1 后面一位`是什么意思呢?这里的 `-1` 指的是 `index` 为 `-1` 的元素,即 `str` 的最后一个位置,在 `a` 中指的是 `9` 这个元素。那它后面一位是无意义的,但解释器执行的时候会切片到该元素的前一位,即 `9`。
下面是几种正序切片的常见用例
a[:-1]
>>> '012345678'注意这里切片返回的结果不会包括索引为 -1 的元素
a[:8]
>>> '01234567'
a[8:]
>>> '89'
a[:8:2]
a[0:8:2]
>>> '0246'
## 逆序切片 (step 为负数)
逆序切片的默认值就很有意思了,不注意的话非常容易混淆搞错边界索引,它的默认值是start = `-1`
end = `0 前面一位`,即切片会返回包括 `str` 第一个元素
这里的逻辑是,从 `start` 元素开始,在其索引上依次加上 `step`,找到下一个索引直到 `end`,所以写逆序切片的时候,`start` 的索引是大于 `end` 的索引的。
a
>>> '0123456789'
a[::-1]
>>> '9876543210'
a[0::-1]
>>> '0'
a[:0:-1]
a[-1:0:-1]
>>> '987654321'
a[4::-1]
>>> '43210'
## 总结
其实不难反推出来,默认的值并不是写死的,而是根据 `step` 值来从 `start` 或者 `end` 二者之一来用加上 `step` 依次推导,直到队列最前/最后一个元素的。如果不熟悉的话,逆序切片很容易在边界上出错,也不直观,不易理解,最好使用其他等效的操作来替代。
python切片逆序_Python 的逆序同时切片如何操作?相关推荐
- python 逆序_python中逆序
python中的list的sort方法怎样逆序输出 很简单啊, sort 支持 reverse 参数,看下面的例子,分别按照正常顺序 (升序)排列,以及按照逆序排列. >>> l = ...
- math python 向上取整_Python成为专业人士笔记-各数学运算操作深度剖析
"专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.zhihu.com Python可以执行常见的数学运算符,包括整 ...
- python实现数的逆序_python怎么逆序
python中字符串数组如何逆序排列?下面给大家介绍几种方法: 1.数组倒序: 原始元素的倒序排列 (1)切片>>> arr = [1,2,3,4,3,4] >>> ...
- python倒序输出数组_python如何逆序输出数组
详细内容 今天就为大家分享一篇python实现将一个数组逆序输出的方法,具有很好的参考价值,希望对大家有所帮助. 方法一:(推荐学习:Python视频教程) 使用for循环从数组最大值开始遍历,每打印 ...
- python数组去重函数_Python科学计算库Numpy之 数组操作
操作ndarray 的方法 numpy.reshape:这个函数在不改变数据的条件下修改形状 numpy.ndarray.flat:该函数返回数组上的一维迭代器,行为类似 Python 内建的迭代器 ...
- python有哪些码_Python有哪些神一般的蜜汁操作? 《附代码》
有人说,"Python除了不会生孩子,Python从撩妹到装x,无所不能!什么都会!" 下载视频?我用Python: 玩跳一跳?我用Python跳到4999分: 撩妹子?依然用Py ...
- python有哪些代码_Python有哪些神一般的蜜汁操作?(附代码),
Python有哪些神一般的蜜汁操作?(附代码), 有人说,"Python除了不会生孩子,Python从撩妹到装x,无所不能!什么都会!" 下载视频?我用Python; 玩跳一跳?我 ...
- python数据分析平均时间间隔_python 数据分析中常用的时间--datetime操作
Python 中有time 模块和datetime模块,因为datetime使用的语法结构跟sql比较类型,所以,我选择了使用datetime. datetime有以下几个类.总结来看,如下图. 下面 ...
- python怎么查看列表_Python 小白,关于对于列表的+=操作不明白,查了半天也不知道怎么查,并且查询无果,请人指点?...
这两题涉及两个概念:赋值过程中的浅复制 VS. 深复制 修改自身的操作 VS. 返回新值的操作 x 是个列表,用Python的话说,属于引用类型,它本身是一个指向底层数据结构的引用,赋值给 y 时,传 ...
最新文章
- maven实现依赖的“全局排除”
- 流量暴增,掌门教育如何基于 Spring Cloud Alibaba 构建微服务体系?
- Python用HTMLTestRunner生成html测试报告
- 设计公共API的六个注意事项
- TensorFlow 基本操作
- 第零课、开启ce自身保护、设置od,让调试不非法
- 绕安全狗mysql_技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
- 喂,315吗?我花299元买到一只人工智障!
- 【Unity开发小技巧】Unity中文转拼音
- 计算机复试不机试的学校,计算机考研复试:计算机考研复试不考机试的高校
- 使用Aforge 开发的摄像头,有拍照,录像,设置帧率,分辨率等,以及对视频以及相机等的控制
- silvaco-mobility models(1)
- 锂电池UN38.3测试项目介绍
- 实现div半透明效果
- css 三栏布局 圣杯布局 双飞翼 flex
- A段架构设计_隽语集(Business Thinking _1201)
- 面试官:如何用最少的老鼠试出有毒的牛奶?
- 2023年美团科研合作课题公开征集启动
- 怎么去掉WIN7窗口文本框中淡绿色的底色
- java 线程的构造函数_深入理解Thread构造函数
热门文章
- 每天进步一点点:andriod学习从零开始
- 《动手学深度学习 PyTorch版》学习笔记(三):线性回归
- 指定tensorflow运行的GPU或CPU设备
- 计算机网络(七)-物理层设备
- 如何看打印机的缓存区域_松下打印机好吗 松下打印机卡纸如何解决【详解】...
- python url中传递中文_Python编程:URL网址链接中的中文编码与解码
- 二进制权值计算 lsb_2020年二级计算机基础知识备考(第二章)
- oracle 批量 重建索引,Oracle重建索引Shell脚本、SQL脚本分享
- python复制之坑
- 在状态栏中显示鼠标位置坐标