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.