What's the difference between these 2 statements?

tiissa tiissa at nonfree.fr
Wed Apr 20 15:29:34 EDT 2005


Reinhold Birkenfeld wrote:
> ATSkyWalker wrote:
> 
>>What's the difference between these 2 statements?
>>
>>If you have a String s="12345"
>>
>>s[len(s)::-1] = "54321"
>>
>>But
>>
>>s[len(s):0:-1] = "5432"
>>
>>Why? What's the difference? What number then can I use as the end of
>>the slice if I were to supply all 3 parameters?
> 
> 
> -1.

-len(s) or less.
-1 will return an empty string.

Actually you start from len(s)-1 (len(s) is not an index in s) and you 
stop when you reach the index specified (or the end). Since -1 is the 
same index as the starting one (-1~>len(s)-1, -2~>len(s)-2, 
-len(s)+1~>0), you end up with an empty string.

Therefore you have to try to reach indices lower (due to the negative 
step) than the minimum valid index of your list in order to reverse it 
fully.



More information about the Python-list mailing list