簡體   English   中英

反向切片Python

[英]Slicing Python in Reverse

在Python中,我知道您可以將序列切片為seq [from:to + 1:step]。 但是,如果使用-1步反向切片,為什么不顯示from元素呢? 它將一個元素從我期望的位置向右移。

x="012345"
x[4:2:-1] 

打印43,而不是我預期的4321。 因此,如果step為-1,那么它將打印seq [from:to-1:step]。 似乎不一致。

如果要切成4321,應該執行x[-2:0:-1]

這意味着從-2開始(-1是最后一個元素),然后以-1作為步長到0(什么都不是第一個元素)。

它按預期工作。
如果您需要結果,

>>> x[4:0:-1]
'4321'

這意味着,從第5個元素開始切片,直到第1個元素(但不包括它)。 僅當您將step size指定為負數時,這種切片才有效。

因此,通常,請遵循olofom的回答。

切片從第一個數字(含)到第二個數字(不含),步長為第三個數字。 在您的情況下,第一個數字訪問“ 4”,第二個數字訪問“ 2”。 以-1為步長,它將以第一個數字(“ 4”)處的字符開始,然后得到下一個字符(或以-1的步長,實際上是前一個字符“ 3”),但由於第二個索引(2)是互斥的,因此將在此處停止。 要獲得從“ 4”到“ 0”的所有內容,可以執行x[4:0:-1]或更方便地執行x[:5]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM