inclusive-lower-bound, exclusive-upper-bound (was Re: Range Operation pre-PEP)

Alex Martelli aleaxit at
Fri May 11 18:09:29 EDT 2001

"Grant Edwards" <grante at> wrote in message
news:3SVK6.301$Dd5.231293 at
> In article <3AFB0DB9.BDAE54A5 at>, Andrew Maizels wrote:
> >I can see where consistency is important, but why does Python do the
> >inclusive-lower-bound, exclusive-upper-bound thing?
> one reason is so that for 0 <= n < len(a),
>     a[:n]+a[n:] == a
> That property makes processing sections of lists much simpler.

Yes, but, is the constraint on n necessary?  It seems to me both
by reasoning and by experiment that this nice and useful property
holds for ALL n, e.g.:

>>> a="hello world"
>>> L=len(a)
>>> for i in range(-L-1,2*L+1):
...     if a[:i]+a[i:] != a: print i

Many cases will be 'degenerate' by having one slice empty and
the other one covering all the sequence, but still the property
holds even then.  Or am I missing something?


More information about the Python-list mailing list