python切片逆序_Python 的逆序同时切片如何操作?
`Python` 的切片,語(yǔ)法是這樣的
a[[start]:[end][:[step]]]
其中索引為 end 的元素不會(huì)被包括進(jìn)來。`start`、`end`、`step` 和 `step 前面的冒號(hào)`都可以省略。這么多可以省略的,那么解釋器是怎么設(shè)置默認(rèn)值的呢?解釋器對(duì)正序和逆序切片的默認(rèn)值設(shè)置是不一樣的。
變量 `a` 長(zhǎng)這樣:
a="0123456789"
## 正序切片
在正序切片中,默認(rèn)值的設(shè)置為start = `0`
end = `-1 后面一位`,即切片會(huì)返回包括 str 最后一個(gè)元素
step = `1`
其中 `end` 的默認(rèn)值為 `-1 后面一位`是什么意思呢?這里的 `-1` 指的是 `index` 為 `-1` 的元素,即 `str` 的最后一個(gè)位置,在 `a` 中指的是 `9` 這個(gè)元素。那它后面一位是無(wú)意義的,但解釋器執(zhí)行的時(shí)候會(huì)切片到該元素的前一位,即 `9`。
下面是幾種正序切片的常見用例
a[:-1]
>>> '012345678'注意這里切片返回的結(jié)果不會(huì)包括索引為 -1 的元素
a[:8]
>>> '01234567'
a[8:]
>>> '89'
a[:8:2]
a[0:8:2]
>>> '0246'
## 逆序切片 (step 為負(fù)數(shù))
逆序切片的默認(rèn)值就很有意思了,不注意的話非常容易混淆搞錯(cuò)邊界索引,它的默認(rèn)值是start = `-1`
end = `0 前面一位`,即切片會(huì)返回包括 `str` 第一個(gè)元素
這里的邏輯是,從 `start` 元素開始,在其索引上依次加上 `step`,找到下一個(gè)索引直到 `end`,所以寫逆序切片的時(shí)候,`start` 的索引是大于 `end` 的索引的。
a
>>> '0123456789'
a[::-1]
>>> '9876543210'
a[0::-1]
>>> '0'
a[:0:-1]
a[-1:0:-1]
>>> '987654321'
a[4::-1]
>>> '43210'
## 總結(jié)
其實(shí)不難反推出來,默認(rèn)的值并不是寫死的,而是根據(jù) `step` 值來從 `start` 或者 `end` 二者之一來用加上 `step` 依次推導(dǎo),直到隊(duì)列最前/最后一個(gè)元素的。如果不熟悉的話,逆序切片很容易在邊界上出錯(cuò),也不直觀,不易理解,最好使用其他等效的操作來替代。
總結(jié)
以上是生活随笔為你收集整理的python切片逆序_Python 的逆序同时切片如何操作?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快手用旺旺瓶子做机器人_用罐头瓶子做醪糟
- 下一篇: python编写抢座位软件_程序员硬核P