[Python-ideas] Where did we go wrong with negative stride?

Ron Adam ron3200 at gmail.com
Mon Oct 28 01:50:17 CET 2013


On 10/27/2013 07:03 PM, Rob Cliffe wrote:
> I'd like to throw in an idea.  Not sure how serious it is (prepared to be
> shot down in flames :-) ), just want to be sure that all possibilities are
> examined.

I think your safe.  ;-)

> With positive strides, "start" is inclusive, "end" is exclusive".
> Suppose that with negative strides, "start" were exclusive and "end" was
> inclusive.

With the proposed behaviour, (That you and Tim described), it will be 
easier to think in terms of [left:right:step].


And it fits with Guido's ...

    s[left:right:-step] == s[left:right][::-step]


One of the nice properties is that you can switch directions by just 
changing the step.  With the current slice's, you need to change the start 
and stop as well.  And also recalculate those if you want the same range.

BTW.  A negative step will only be the exact reversed sequence if the last 
item is also (j-1) for that step value.

Cheers,
   Ron

> (I.e. the "lower" bound was always inclusive and the "upper" bound was
> always exclusive.)
> Then "abcde"[:2:-1] would be "edc", not "ed".
> Then "abcde"[:1:-1] would be "edcb", not "edc".
> Then "abcde"[:0:-1] would be "edcba".
> I think this fits in with Tim Peters' concept of characters between
> positions, e.g. "abcde"[3:0:-1] would be "cba" (not "dcb" as at present),
> i.e. the characters between positions 0 and 3.
> Rob Cliffe



More information about the Python-ideas mailing list