Читать книгу Routineaufgaben mit Python automatisieren - Al Sweigart - Страница 108

Einzelne Elemente einer Liste mithilfe des Index abrufen

Оглавление

Wenn Sie die Liste ['cat', bat', 'rat', 'elephant'] in der Variablen spam gespeichert haben, wird spam[0] zu 'cat' ausgewertet, spam[1] zu 'bat' usw. Der Integer in den eckigen Klammern, der die Position in der Liste angibt, wird als Index bezeichnet. Das erste Element in einer Liste hat den Index 0, das zweite den Index 1, das dritte den Index 2 usw. Abb. 4–1 zeigt den Listenwert, der spam zugeordnet ist, und gibt an, wozu die einzelnen Indexausdrücke ausgewertet werden. Da der erste Index 0 ist, ist der letzte eins weniger als die Länge der Liste. Bei einer Liste mit vier Einträgen lautet der letzte Index also 3.

Abb. 4–1Ein Listenwert gespeichert in der Variablen spam. Die Pfeile zeigen, auf welche Elemente sich die Indizes jeweils beziehen.

Geben Sie zur Veranschaulichung die folgenden Ausdrücke in die interaktive Shell ein. Zu Anfang weisen Sie der Variablen spam dabei eine Liste zu.

>>> spam = ['cat', 'bat', 'rat', 'elephant']

>>> spam[0]

'cat'

>>> spam[1]

'bat'

>>> spam[2]

'rat'

>>> spam[3]

'elephant'

>>> ['cat', 'bat', 'rat', 'elephant'][3]

'elephant'

>>> 'Hello ' + spam[0]

'Hello cat'

>>> 'The ' + spam[1] + ' ate the ' + spam[0] + '.'

'The bat ate the cat.'

Der Ausdruck 'Hello ' + spam[0] () wird dabei zu 'Hello ' + 'cat' ausgewertet, da spam[0] den String 'cat' bezeichnet. Dieser Ausdruck wiederum ergibt den Stringwert 'Hello cat' ().

Wenn Sie einen Index verwenden, der über die Anzahl der Elemente in der Liste hinausgeht, gibt Python die Fehlermeldung IndexError aus:

>>> spam = ['cat', 'bat', 'rat', 'elephant']

>>> spam[10000]

Traceback (most recent call last):

File "<pyshell#9>", line 1, in <module>

spam[10000]

IndexError: list index out of range

Indizes können immer nur Integerwerte sein, keine Fließkomazahlen. Das folgende Beispiel ruft den Fehler TypeError hervor:

>>> spam = ['cat', 'bat', 'rat', 'elephant']

>>> spam[1]

'bat'

>>> spam[1.0]

Traceback (most recent call last):

File "<pyshell#13>", line 1, in <module>

spam[1.0]

TypeError: list indices must be integers or slices, not float

>>> spam[int(1.0)]

'bat'

Listen können auch andere Listen enthalten. Um auf die Elemente dieser Listen zuzugreifen, verwenden Sie Mehrfachindizes:

>>> spam = [['cat', 'bat'], [10, 20, 30, 40, 50]]

>>> spam[0]

['cat', 'bat']

>>> spam[0][1]

'bat'

>>> spam[1][4]

50

Der erste Index gibt an, welche Liste abgerufen werden soll, während der zweite das Element in dieser Liste bezeichnet. Beispielsweise führt spam[0][1] zu 'bat', dem zweiten Element in der ersten Liste. Wenn Sie nur einen Index angeben, gibt das Programm die komplette Liste an dieser Indexposition aus.

Routineaufgaben mit Python automatisieren

Подняться наверх