R
Raoul Gough
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. I would suggest that it should be something
like:
"x = i + n, such that n is a multiple of k and 0 <= n < abs(i-j)"
or maybe better
"x = i + n*k, 0 <= n < ((j-i) / k)"
(Requiring j>i for positive k and j<i for negative k). I've tested the
implementation as follows:
I was going to submit a bug, but then I realised that I might just be
mis-interpreting what the documentation says (or maybe it'd not even
supposed to be so precise a specification). Any comments or
confirmation on this?
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. I would suggest that it should be something
like:
"x = i + n, such that n is a multiple of k and 0 <= n < abs(i-j)"
or maybe better
"x = i + n*k, 0 <= n < ((j-i) / k)"
(Requiring j>i for positive k and j<i for negative k). I've tested the
implementation as follows:
[] # Would print [2, 0, 8] according to doc??x=[0,1,2,3,4,5,6,7,8,9]
print x[0:5:2] [0, 2, 4] # Would print [0, 2, 4, 6, 8] according to doc?
print x[2:5:-2]
I was going to submit a bug, but then I realised that I might just be
mis-interpreting what the documentation says (or maybe it'd not even
supposed to be so precise a specification). Any comments or
confirmation on this?