288
Objekte und Methoden
Kapitel
11
Zugriff auf die Elemente von Sequenzen mit
Indizes
Sequenzen sind
geordnete Folgen
von Elementen. Die Elemente sind sozu-
sagen nummeriert. Man kann ein Element einer Sequenz ermitteln, indem
man nach dem Namen, der auf die Sequenz verweist, die Nummer des Ele-
ments in eckigen Klammern angibt. Sehen wir nach, welches das erste Ele-
ment von
listeA
ist.
>>> listeA
[3, 3.5, 4, 4.5]
>>> listeA[1]
3.5
Das ist merkwürdig. Wie groß ist dann das vierte Element?
>>> listeA[4]
Traceback (most recent call last):
File "<pyshell#30>", line 1, in <module>
listeA[4]
IndexError: list index out of range
Wir finden einen Index-Fehler. Was heißt das? Um das zu verstehen, musst
du wissen, was ein Index ist. Der Index eines Elements einer Sequenz ist die
Nummer dieses Elements.
(Index
kommt aus dem Lateinischen und heißt so
viel wie Zeiger. Die Mehrzahl des Wortes Index lautet daher Indizes, gemäß
dem Duden darf man aber auch einfach
Indexe
sagen.) Wir haben soeben
das vierte Element von
listeA
, also das Element mit dem Index 4 gesucht.
Der IPI sagt uns, dass der Index 4 außerhalb des erlaubten Bereichs liegt. Es
ist einfach so, dass Zählen in der Informatik fast immer bei 0 beginnt. Erin-
nere dich an:
>>> tuple(range(4))
(0, 1, 2, 3)
Man kann aus den Werten des Vorrats, den
range(4)
liefert, ebenso leicht
eine Liste machen:
>>> list(range(4))
[0, 1, 2, 3]
Bei dieser Liste ist jedes Element gerade so groß wie sein Index. Der höchs-
te Index von
listeA
ist daher 3 – und der kleinste 0. Stell es dir so vor:
289
Sequenzen
Der Index ist der Abstand des Elements vom Anfang der Sequenz
>>> listeA
[3, 3.5, 4, 4.5]
>>> listeA[3]
4.5
>>> listeA[0]
3
Die Indizes der Elemente einer Sequenz mit Länge n laufen von 0 bis n-1.
Jetzt können wir auch feststellen, wie es sich mit den Elementen von
listeC
verhält. Ihre Länge ist 3, daher muss sie Elemente mit den Indizes
0, 1, 2 enthalten:
>>> listeC[0]
1
>>> listeC[1]
[2, 3]
>>> listeC[2]
[4, [5, 6]]
>>>
Du siehst, die Elemente mit den Indizes 1 und 2 sind selbst Listen.
>
Untersuche, welche Elemente
tupelB
hat.
>
Überlege, wie das folgende Ergebnis zustande kommt:
>>> len(stringC)
51
Wenn man die Zeichen in den drei Zeilen abzählt, sieht es doch so aus, als
hätte
stringC
10 + 19 + 20 = 49 Zeichen. Du kannst dir aber
stringC
näher anschauen:
>>> stringC
'Eine Zeile\nund noch eine Zeile\nund noch eine Zeile.'
Nanu! Jetzt sieht es wieder wie 53 Zeichen aus. Ich verrate dir des Rätsels
Lösung:
\n
zählt als ein Zeichen, und zwar als ein Sonderzeichen – das
Zeilenvorschubzeichen. Es bedeutet, dass bei der Ausgabe durch die
print()
-Funktion danach eine neue Zeile beginnt. Sonderzeichen begin-
nen immer mit einem
backslash
, einem rückwärts geneigten Strich. Er be-
sagt, dass das Zeichen dahinter – in unserem Fall das
n
für
new line
– kein
normales Zeichen, also kein normales n ist, sondern etwas Besonderes. Du
kannst dieses Zeichen auch selbst in Strings einbauen. Versuche mal:
>>> print("ha\nha\n\nna und?")

Get Python für Kids now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.