[Python-de] Index-Bereiche bei Slices

Jan Voges jan.voges at gmx.de
Sam Aug 14 22:51:43 CEST 2004


[Sorry, Stefan, für die Email. Also das Ganze nochmal an die Liste]

Hallo!

On 14 Aug 2004 at 20:54, Stefan Schwarzer wrote:

> bekommt und nicht etwa [37, 8, 9], die Werte für die in der
> Slice-Syntax angegebenen Indices 1 bis 3. Gibt es eine für
> Python-Einsteiger nachvollziehbare Erklärung, warum sich Slicing (und
> die range-Anweisung) so verhalten, wie sie es tun?

Die 1 und 3 stehen ja eher für die Zwischenräume, an denen die Sequenz
aufgetrennt wird.

Siehe auch "3.1.2 Strings" im Tutorial:
>>>>>>>>>>
The best way to remember how slices work is to think of the indices as
pointing between characters, with the left edge of the first character
numbered 0. Then the right edge of the last character of a string of n
characters has index n, for example: 


 +---+---+---+---+---+ 
 | H | e | l | p | A |
 +---+---+---+---+---+ 
 0   1   2   3   4   5 
-5  -4  -3  -2  -1
<<<<<<<<<<

Anfänglich leuchtete mir nicht ein, warum das letzte Element mit bla[-1]
angesprochen wird und nicht mit bla[-0] (mal vom Problem abgesehen, 0 und
-0 voneinander unterscheiden zu können). bla[-1] muss man eben auch lesen
als das Element hinterm vorletzten Zwischenraum.

Jan