假設我宣告了一個字串,如果我想將 '-1' 索引列印到 '5' 索引;我得到了一個我不期望的答案。只是想知道在這種情況下字串如何遍歷
>>> str = 'qwerty'
>>> str[-1:5]
''
>>> str[-1:6]
'y'
uj5u.com熱心網友回復:
我將字串命名為 x 以避免與 str 發生名稱沖突。
x = "qwerty"
-1 表示字串的最后一個索引,即 5。由此您可以看出切片結果為何如此。
x[0:-1] -> x[0:5] -> "qwert"
x[-1:5] -> x[5:5] -> ""
x[-1:6] -> x[5:6] -> "y"
低指數是包含的,但高指數是不包括的。例如。x[0:0]不給你任何字符,但x[0:1]給你第 0 個索引字符。
uj5u.com熱心網友回復:
在 Python 中,切片回傳從起始索引到結束索引減一的元素。因此,如果您列印s[-1:5],它實際上會從最后一個索引 5 列印到索引 4(請注意,這是反向遍歷,直到索引步長為 -1,這是不可能的)。因此,您會得到一個空字串。s[-1:6]另一方面,如果你列印,你基本上是在訪問最后一個索引 5 和 6-1,再次是 5。這等效于s[5:6],它將回傳最后一個字符y。
uj5u.com熱心網友回復:
簡答
因為 -1 和 5 是同一個地方
注意表同時使用兩種形式的索引

您可以閱讀官方檔案中的切片 和擴展切片以更深入地了解它。
了解切片如何在 python 中作業的長答案
i=0
j=1
s="qwerty"
s[i:j]
輸出
q
它只是從i 索引中選擇直到j 索引之前,以便選擇最后一個字母“y”,它可以使用i=5和j=6.. 注意沒有索引 6 不能實際使用,您只需指定您將從 i=5 裁剪并且只裁剪一個字符6-5=1
還要考慮切片時有第三個引數
s= 'qwerty'
print(s[5:6:1])
會給同樣的
y
當您使用 start 和 end 進行切片時,與步驟 1 相同,您可以選擇從 end 到 start 來反轉它
s= 'qwerty'
print(s[5:-7:-1])
輸出
ytrewq
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/373409.html
上一篇:查找和更改單詞中的重復字母
