[Python-ideas] Where did we go wrong with negative stride?
Guido van Rossum
guido at python.org
Sun Oct 27 18:04:02 CET 2013
In the comments of
http://python-history.blogspot.com/2013/10/why-python-uses-0-based-indexing.htmlthere
were some complaints about the interpretation of the bounds for
negative strides, and I have to admin it feels wrong. Where did we go
wrong? For example,
"abcde"[::-1] == "edcba"
as you'd expect, but there is no number you can put as the second bound to
get the same result:
"abcde"[:1:-1] == "edc"
"abcde"[:0:-1] == "edcb"
but
"abcde":-1:-1] == ""
I'm guessing it all comes from the semantics I assigned to negative stride
for range() long ago, unthinkingly combined with the rules for negative
indices.
Are we stuck with this forever? If we want to fix this in Python 4 we'd
have to start deprecating negative stride with non-empty lower/upper bounds
now. And we'd have to start deprecating negative step for range()
altogether, recommending reversed(range(lower, upper)) instead.
Thoughts? Is NumPy also affected?
--
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20131027/dd5c2905/attachment.html>
More information about the Python-ideas
mailing list