[Python-de] Index-Bereiche bei Slices

Christian Mönch christian.moench at web.de
Mon Aug 16 10:55:40 CEST 2004


Hallo

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).

Insgesamt erscheint IMHO das Berechnen von Eigenschaften von Slices mit der 
gewählten Konvention ziemlich natürlich. Z.B. gilt für die Länge eines Slice 
(für positive Indizes und a <= b): len(l[a:b]) = b - a.


Grüße,
Christian