[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