Misleading description of [i:j:k] slicing?

Michael Hudson mwh at python.net
Thu Aug 21 13:12:28 EDT 2003


Raoul Gough <RaoulGough at yahoo.co.uk> writes:

> As of Python 2.3, Section 2.2.6 (Sequence Types) describes slices
> which have a specified step (to omit some indexes in beteween), using
> the notation s[i:j:k]. The note about how this works says:
> 
>   "The slice of s from i to j with step k is defined as the sequence
>   of items with index x = i + n*k such that 0 <= n < abs(i-j). [...]"
> 
> Seems to me that "0 <= n < abs(i-j)" is wrong, since the range of n
> gets multiplied by k. 

How about "0 <= n < abs(k*(i-j))"?  But you're right, what's there is
a bit wrong.  It's surprisingly hard to get this written down well.
The idea's not that hard, but a terse explanation is surprisingly
hard (when you start omitting values it gets even more fun!).

Please submit a patch (assign it to me if you like -- the above
passage is my fault).

Cheers,
mwh


-- 
  This same programmer had worked for the military, and therefore had
  access to weapons-grade cursing technology.
                                                  -- Matt Roberds, asr




More information about the Python-list mailing list