[Python-de] Index-Bereiche bei Slices

Stefan Schwarzer sschwarzer at sschwarzer.net
Mon Aug 16 10:25:40 CEST 2004


Hallo,

inzwischen hat der Thread größere Ausmaße angenommen, als es (selbst
mir) vielleicht wert ist. :-) Ich hatte gehofft, dass es eine einfache
Antwort gibt, die mir bloß nicht eingefallen ist. Danke an alle, die
geantwortet haben.

Ich will aber noch anmerken, was ich meinte (und vielleicht hat dann
doch noch jemand eine gute Antwort :) ) ...

On Mon, 2004-08-16 02:42:55 +0200, daniel.poelzleithner wrote:
> | Das erklärt ja durchaus, wie man sich das tatsächlich in Python
> | verwendete Slicing erklären kann. Worauf ich aber eher abzielte bzw.
> | abzielen wollte: _Warum_ wurde die Konvention so gewählt? (Und nicht:
> | Wie kann man die Konvention _im nachhinein_ erklären?)
> 
> Weil die Null in der religionslosen Computerwelt als Zahl akzeptiert
> ist, und somit unser Zahlensystem bei 0 anfängt, und nicht bei 1.

Ich wollte gar nicht darauf hinaus, dass das erste (bzw. nullte? ;-) )
Element einer Liste mit Null indiziert wird.

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]

Viele Grüße
 Stefan