Listen beschneiden#
Eine häufige Aufgabe in Python ist es, Teile von Listen und Tupeln zu beschneiden, zum Beispiel um auf bestimmte Teile von Listen zuzugreifen.
Beginnen wir mit einer Liste von Zahlen
data = [34, 0, 65, 23, 51, 9, 50, 78, 34, 100]
Wir können bestimmen, wie viele Elemente in data
sind:
len(data)
10
Wie bereits gezeigt, können wir auf bestimmte Elemente zugreifen, indem wir einen Index übergeben. Die Zählung des Element-Index beginnt bei 0.
data[0]
34
data[1]
0
Wir können auch negative Indizes übergeben. Dies greift auf Elemente vom Ende der Liste zu. Das letzte Element hat den Index -1.
data[-1]
100
data[-2]
34
Auswahl von Bereichen in Listen#
Wir können auch eine neue Liste erzeugen, die die ersten drei Elemente enthält. Dazu übergeben wir einen Bereich in der Form [start:ende]
. Das erste Element hat den Index start
und das letzte Element der neuen Liste wird gerade vor ende
sein.
data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]
data[0:2]
[34, 0]
data[0:3]
[34, 0, 65]
data[1:2]
[0]
Außerdem müssen wir weder start
noch ende
angeben, wenn wir alle Einträge in einer Liste vom Anfang oder bis zum Ende auswählen möchten.
data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]
data[:2]
[34, 0]
data[:3]
[34, 0, 65]
data[2:]
[65, 23, 51, 9, 50, 78, 34, 100]
data[3:]
[23, 51, 9, 50, 78, 34, 100]
Dies funktioniert auch mit negativen Indizes
data[-2:]
[34, 100]
Schrittweises Durchlaufen von Einträgen in Listen#
Der :
kann auch verwendet werden, um eine Schrittlänge mit der Syntax [start:ende:schritt]
anzugeben.
data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]
Zum Beispiel können wir jedes zweite Element, beginnend mit dem ersten, auswählen:
data[0:10:2]
[34, 65, 51, 50, 34]
data[::2]
[34, 65, 51, 50, 34]
Wir können auch beim zweiten Element (Index 1) beginnen:
data[1::2]
[0, 23, 9, 78, 100]
Tupel#
Alle oben vorgestellten Konzepte funktionieren auch mit Tupeln
immutable_data = tuple(data)
immutable_data
(34, 0, 65, 23, 51, 9, 50, 78, 34, 100)
immutable_data[:5]
(34, 0, 65, 23, 51)
Übung#
Bitte wählen Sie die drei Zahlen 23, 9 und 78 aus data
mit einem einzigen Python-Befehl aus, ähnlich den oben gezeigten Befehlen.