[Python-ideas] [Python-Dev] Inclusive Range

Antoon Pardon Antoon.Pardon at rece.vub.ac.be
Mon Oct 11 04:40:34 EDT 2010


On Sat, Oct 09, 2010 at 01:37:03AM +0000, Steven D'Aprano wrote:
> On Fri, 08 Oct 2010 15:53:17 -0400, Jed Smith wrote:
> 
> > On Fri, Oct 8, 2010 at 1:26 PM, Steven D'Aprano
> > <steve at remove-this-cybersource.com.au> wrote:
> >> On Fri, 08 Oct 2010 10:21:16 +0200, Antoon Pardon wrote:
> >>
> >>> Personnaly I find it horrible
> >>> that in the following expression: L[a:b:-1], it is impossible to give
> >>> a numeric value to b, that will include L[0] into the reversed slice.
> >>
> >>
> >>
> >>>>> L = [1, 2, 3, 4, 5]
> >>>>> L[5:-6:-1]
> >> [5, 4, 3, 2, 1]
> > 
> >>>> a = [1, 2, 3, 4, 5, 6]
> >>>> a[::-1]
> > [6, 5, 4, 3, 2, 1]
> 
> 
> Well of course that works, that is the standard Python idiom for 
> reversing a sequence.
> 
> But the point was that Antoon claimed that there is no numeric value for 
> the end position that will include L[0] in the reversed slice. My example 
> shows that this is not correct.

I stand by that claim. I think it was fairly obvious that what I meant
was that it was impossible to give such a numeric value that would work
with arbitrary L.

if L2 == list(reversed(L1)) and a and b are in the range 1 < x <= len(L),
we have the following invariant.

  L1[a:b] == L2[b-1:a-1:-1]

However this no longer works if either nr is 0. That means that if a and
be are computed values, that may return 0 to indicate which slice you
want; that if you want the reversed slice, there is no straightforward
way to get that reversed slice with extended slice notation.

-- 
Antoon Pardon



More information about the Python-list mailing list