[Python-de] Index-Bereiche bei Slices

Christian Tanzer tanzer at swing.co.at
Mon Aug 16 11:06:01 CEST 2004


Christian Mönch <christian.moench at web.de> schrieb:

> Am Montag, 16. August 2004 10:25 schrieb Stefan Schwarzer:
> >[...]
> >
> > Was ich meinte, ist: Warum bekommt der zweite Index eines Slice nicht
> > den Index des betreffenden Elements aus der Liste, sondern muss um
> > eins größer gewählt werden?
> >
> > Naheliegender(?) wäre doch:
> >
> > L = [34, 7, 19, 23]
> > L[1] == 7             # stimmt in Python
> > L[3] == 23            # stimmt in Python
> > L[1:3] = [7, 19, 23]  # stimmt _nicht_ in Python; L[1:3] ergibt [7, 19]
> >           ^       ^
> >           L[1]    L[3]
> >[...]
>
> Ein Grund könnte sein, daß sich mit der in Python gewählten Konvention
> Slices der Länge Null ziemlich natürlich darstellen lassen (und die
> können als Abbruchkriterium für Iterationen sehr nützlich sein).

Die sind auch sonst nützlich:

>>> l = range (5)
>>> l [2:2] = range (42, 44)
>>> l
[0, 1, 42, 43, 2, 3, 4]

Sagt-einer-der-Datenstrukturen-immer-1-basiert-definierte,

-- 
Christian Tanzer                                    http://www.c-tanzer.at/