Questions regarding design decisions in listobject.c
Alex Martelli
alex at magenta.com
Mon Jun 12 08:25:46 EDT 2000
Martijn Faassen <m.faassen at vet.uu.nl> wrote in message
news:8hlr8r$77a$1 at newshost.accu.uu.nl...
> Courageous <jkraska1 at san.rr.com> wrote:
> [snip]
> > Well, yeah, but [0:3] as "element zero through three, inclusive"
> > is about as intuitive as you can get. While I understand completely
> > how the current implementation works (reading the source code and
> > all, dontcha know), I still fail to see *why* this was chosen.
>
> a[0:i] + a[i:] == a
>
> a[0:len(a)] == a
>
> Inserting a list at index i:
>
> a[:i] + b + a[i:]
>
> In practice, no need to think about a *lot* of off-by-one errors.
Koenig's excellent book on C's traps and pitfalls is where I
first saw advocacy for the style of "lower bound included,
upper bound excluded" and lots of good reasons for it. Today,
of course, the style is pervasive in C++'s standard library,
and in Python too. It's truly a good idea.
Alex
More information about the Python-list
mailing list