On Mon, Nov 24, 2014 at 12:32 PM, boB Stepp <robertvst...@gmail.com> wrote:
> Python 2.7.8
> Win7Pro
>
>>>> str = "0123456789"
>>>> str[-1]
> '9'
>>>> str[-3:-1]
> '78'
>>>> str[-3:]
> '789'
>
> I understand that the above is "the way it is" in Python, but I am
> puzzled why the designers did not choose that str[-3:-1] returns
> '789', especially since str[-1] returns '9'. What is the reason for
> choosing Python's actual behavior?

For the same reason as this behavior with positive indices:

>>> s = '0123456789'
>>> s[1]
'1'
>>> s[3]
'3'
>>> s[1:3]
'12'

Here's what you can do with it:

>>> s[-5:-3] + s[-3:-1] == s[-5:-1]
True
>>> len(s[-5:-3]) == -3 - -5
True

Think of slicing as "everything from this index (-3) up to but not
including (:) this index (-1)".

Have I clarified or muddied it for you? :)

Regards,
-- 
Zach
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to