[EMAIL PROTECTED] wrote: > Robert Kern wrote: >> I'd say bug in the .indices() method. The meaning of [4:-1:-1] is unavoidable >> different than [::-1] since the index -1 points to the last element, not the >> imaginary element before the first element. Unfortunately, there *is* no >> concrete (start, stop, step) tuple that will emulate [::-1]. > > After some more experimenting, it seems that [L-1:-L-1:-1] will reverse > a sequence of length L.
Ah, yes. Good point. > But slice(L-1,-L-1,-1).indices(L) gives (L-1, > -1,-1) which will not reverse the sequence. And range(L-1, -L-1, -1) is > totally off, but range(L-1,-1,-1) is correct. > > Seems like a bug (or an odd feature) of extended slicing of strings and > other built in sequences. It's not a bug with extended slicing. -1 has a very definite meaning when used as an index. The result of applying [4:-1:-1] is completely consistent with that meaning. The problem is with .indices() for giving you something that is inconsistent with that meaning. range() is neither here nor there; it's semantics are simply different. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list