Tutorial creates confusion about slices

Hamilton, William whamil1 at entergy.com
Mon Apr 23 10:30:47 EDT 2007


> -----Original Message-----
> From: python-list-bounces+whamil1=entergy.com at python.org
[mailto:python-
> list-bounces+whamil1=entergy.com at python.org] On Behalf Of Antoon
Pardon
> Sent: Monday, April 23, 2007 7:38 AM
> To: python-list at python.org
> Subject: Tutorial creates confusion about slices
> 
> The following is part of the explanation on slices in the
> tutorial:
> 
> The best way to remember how slices work is to think of the indices as
> pointing between characters, with the left edge of the first character
> numbered 0. Then the right edge of the last character of a string of n
> characters has index n, for example:
> 
>   +---+---+---+---+---+
>   | H | e | l | p | A |
>   +---+---+---+---+---+
>   0   1   2   3   4   5
>  -5  -4  -3  -2  -1
> 
> This is all very well with a simple slice like:
> 
>   "HelpA"[2:4]    =>     "lp"
> 
> 
> But it give the wrong idea when using the following extended slice:
> 
>   "HelpA"[4:2:-1]   =>   "Ap"
> 
> So this doesn't result in the reverse of the previous expression while
> the explanation above suggest it does.
 
It makes sense if you recognize that the negative step value also flips
which "side" the index is on.  

   +---+---+---+---+---+
   | H | e | l | p | A |
   +---+---+---+---+---+
       0   1   2   3   4
  -6  -5  -4  -3  -2  -1


---
-Bill Hamilton



More information about the Python-list mailing list