2012-04-02 96 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