Python 切片操作中 step 为负值如何理解? |
您所在的位置:网站首页 › 切片start为负数 › Python 切片操作中 step 为负值如何理解? |
Cao Yi
Python 切片操作中 step 为负值如何理解?
Index 切片操作是Python中对序列对象(如字符串、列表等)进行切片的一种操作方式。它的基本语法是 [start:stop:step],其中 start 表示起始位置(默认为0),stop 表示结束位置(默认为序列的长度),step 表示步长(默认为1)。 在 Python 中,切片操作的 step 参数可以为负值,表示从右往左取值,即反向切片。 当 step 参数为正数时,切片从左往右取值,每次取值的步长为 step;当 step 参数为负数时,切片从右往左取值,每次取值的步长为 step 的绝对值。 需要注意的是,当 step 参数为负数时,切片的起始索引位置应该在终止索引位置的右侧。否则,切片将返回空序列。例如,”123456789”[3:1:-1] 表示从 “123456789”[3] 开始向左取值,直到 “123456789”[1] 为止(不包括 “123456789”[1]),每次取值的步长为 1。这里的起始索引位置 3 大于终止索引位置 1,但由于 step 参数为负数,所以切片仍然有效。最终返回的序列为 “123456789”[3] 和 “123456789”[2],即 43。 >>> "123456789"[3:1:-1] '43'对于一个字符串 s,使用 “123456789”[::-1] 可以将字符串反转,这里的 step 参数为 -1,表示从右往左取值,每次取值的步长为 1。这里的 start 和 stop 默认值和 step 为正数时相反,都不写,表示默认取整个字符串的范围。要覆盖整个字串时 stop 必须为空,因为在从左往右操作时,没有合适的值能表示第一个元素左边的索引。 >>> "123456789"[9:0:-1] '98765432' >>> "123456789"[9::-1] '987654321' >>> "123456789"[::-1] '987654321'整个切片操作的从字符串的最后一个字符开始,以步长 -1 取字符,一直取到字符串的第一个字符为止,从而实现了字符串的反转。 其他步长的例子略举如下: >>> "123456789"[::-2] '97531' >>> "123456789"[::-3] '963' >>> "123456789"[::-4] '951' >>> "123456789"[::-5] '94' >>> "123456789"[::-6] '93' >>> "123456789"[::-7] '92' >>> "123456789"[::-8] '91' >>> "123456789"[::-9] '9' >>> "123456789"[::-10] '9' >>> "123456789"[::-11] '9' This site is open source. Improve this page. |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |