[EMAIL PROTECTED] wrote:

> I'm just starting out on Python, and am stumped by what appears an oddity in 
> the way negative indices are handled.
>
> For example, to get the last character in a string, I can enter "x[-1]". To 
> get the 2nd and 3rd to last, I can enter x[-3:-1] etc. This is fine.
>
> Logically, I should be able to enter x[-2:-0] to get the last and next to 
> last characters. However, since Python doesn't distinguish between positive 
> and negative zero, this doesn't work. Instead, I have to enter x[-2:].
>
> With simple constants, this is ok, but it's a little more annoying when the 
> start and end of the range are in variables somewhere. The only way I can 
> find of making this work without lots of special-case "if" logic is to 
> translate negative subscripts to positive, which kinda defeats the purpose of 
> the negative subscripts anyway.
>
> Is there some magic I'm missing here? Wouldn't it actually be better for 
> Python to treat 0 as a special case here, so that x[-2:0] and x[-2:] 
> generated the same result?
>
> --Tim

x[-2:None]

I'm not sure if it qualifies as "magic" but you're right, it's not more
obvious than 0 would be.

George

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to