2012-04-02 91 views
0

這已被問了很多次,但我不想再問這個問題。我只想知道 是如何發生的?切片反轉字符串混淆

>>> st="arindam" 

>>> st[::-1] #This is the one that everyone probably uses 
'madnira' 

是否有人請解釋爲什麼這會起作用?

>>> st[-1::-1] 
'madnira' 

這是怎麼回事成功的字符串?我認爲這會從「一」 和打印「adnira」

+0

指數-1是字符串的最後一個字符,所以...... – kindall 2012-04-02 21:35:49

回答

4

在Python列表索引,索引-1指字符串中的最後字符開始。使用負階躍索引時,省略起始索引使用-1作爲開始(正階梯索引默認從0開始)。

+0

啊.........這也解釋了它......謝謝Sir – 2012-04-02 21:38:05

+0

我認爲這會使'start:end:step'的行爲就像'range(start,end,step)'一樣嗎? – ninjagecko 2012-04-02 21:38:59

1

因爲ST [-1]的 'm':

>>> st="arindam" 
>>> st[-1] 
'm' 
>>> st[::-1] 
'madnira' 
>>> st[-1::-1] 
'madnira' 
>>> st[-2::-1] 
'adnira' 
+0

'>>> ST [1:0:-1]'' 'madnir'' 但是'>>> ST [-1 :: - 1]'' ' madnira'' 如何這樣做發生? – 2012-04-02 21:43:52

+0

0和None(隱含在'::'之間)表現不同。 – 2012-04-02 21:51:23