Listen#

Python hat einen mächtigen eingebauten Listentyp:

1 []
2 [1]
3 [1, "2.", 3.0, ["4a", "4b"], (5.1,5.2)]

Eine Liste kann eine Mischung anderer Typen als Elemente enthalten, darunter Zeichenketten, Tupel, Listen, Dictionaries, Funktionen, Dateiobjekte und jede Art von Zahl.

Eine Liste kann von vorne oder hinten indiziert werden. Ihr könnt euch auch auf ein Teilsegment einer Liste beziehen, indem ihr die Slice-Notation verwendet:

 1 >>> x = [1, "2.", 3.0, ["4a", "4b"], (5.1,5.2)]
 2 >>> x[0]
 3 '1'
 4 >>> x[1]
 5 '2.'
 6 >>> x[-1]
 7 (5.1, 5.2)
 8 >>> x[-2]
 9 ['4a', '4b']
10 >>> x[1:-1]
11 ['2.', 3.0, ['4a', '4b']]
12 >>> x[0:3]
13 [1, '2.', 3.0]
14 >>> x[:3]
15 [1, '2.', 3.0]
16 >>> x[-4:-1]
17 ['2.', 3.0, ['4a', '4b']]
18 >>> x[-4:]
19 ['2.', 3.0, ['4a', '4b'], (5.1, 5.2)]
Zeilen 2 und 4

Index von vorne unter Verwendung positiver Indizes beginnend mit 0 als erstem Element.

Zeilen 6 und 8

Index von hinten unter Verwendung negativer Indizes beginnend mit -1 als letztem Element.

Zeilen 10 und 12

Slice mit [m:n], wobei m der inklusive Startpunkt und n der exklusive Endpunkt ist.

Zeilen 14, 16 und 18

Ein [:n]-Slice beginnt am Anfang und ein [m:]-Slice geht bis zum Ende einer Liste.

Ihr könnt diese Notation verwenden, um Elemente in einer Liste hinzuzufügen, zu entfernen und zu ersetzen oder um ein Element oder eine neue Liste zu erhalten, die ein Slice davon ist, z.B.:

 1 >>> x = [1, "2.", 3.0, ["4a", "4b"], (5.1,5.2)]
 2 >>> x[1] = "zweitens"
 3 >>> x[2:3] = []
 4 >>> x
 5 [1, 'zweitens', ['4a', '4b'], (5.1, 5.2)]
 6 >>> x[2] = [3.1, 3.2, 3.3]
 7 >>> x
 8 [1, 'zweitens', [3.1, 3.2, 3.3], (5.1, 5.2)]
 9 >>> x[2:]
10 [[3.1, 3.2, 3.3], (5.1, 5.2)]
Zeile 3

Die Größe der Liste erhöht oder verringert sich, wenn das neue Slice größer oder kleiner ist als das Slice, das es ersetzt.

Slices erlauben auch eine stufenweise Auswahl zwischen den Start- und Endindizes. Der Standardwert für ein nicht spezifiziertes Stride ist 1, womit jedes Element aus einer Sequenz zwischen den Indizes genommen wird. Bei einem Stride von 2 wird jedes zweite Element übernommen usw.:

1>>> x[0:3:2]
2[1, [3.1, 3.2, 3.3]]
3>>> x[::2]
4[1, [3.1, 3.2, 3.3]]
5>>> x[1::2]
6['zweitens', (5.1, 5.2)]

Der Stride-Wert kann auch negativ sein. Ein -1-Stride bedeutet, von rechts nach links gezählt wird:

1>>> x[3:0:-2]
2[(5.1, 5.2), 'zweitens']
3>>> x[::-2]
4[(5.1, 5.2), 'zweitens']
5>>> x[::-1]
6[(5.1, 5.2), [3.1, 3.2, 3.3], 'zweitens', 1]
Zeile 1

Um eine negative Schrittweite zu verwenden, sollte das Start-Slice größer sein als das End-Slice.

Zeile 3

Die Ausnahme ist, wenn ihr die Start- und Endindizes weglasst.

Zeile 5

Ein Stride von -1 kehrt die Reihenfolge um.

Einige Funktionen der Slice-Notation können auch mit speziellen Operationen wausgeführt werden, wodurch die Lesbarkeit des Codes verbessert wird:

1>>> x.reverse()
2>>> x
3[(5.1, 5.2), [3.1, 3.2, 3.3], 'zweitens', 1]

Darüberhinaus könnt ihr die fogenden eingebauten Funktionen (len, max und min), einige Operatoren (in, + und *), die del-Anweisung und die Listenmethoden (append, count, extend, index, insert, pop, remove, reverse und sort) für Listen verwenden:

1 >>> len(x)
2 4
3 >>> x + [0, -1]
4 [(5.1, 5.2), [3.1, 3.2, 3.3], 'zweitens', 1, 0, -1]
5 >>> x.reverse()
6 >>> x
7 [1, 'zweitens', [3.1, 3.2, 3.3], (5.1, 5.2)]
Zeile 3

Die Operatoren + und * erzeugen jeweils eine neue Liste, wobei die ursprüngliche Liste unverändert bleibt.

Zeile 5

Die Methoden einer Liste werden mit Hilfe der Attributschreibweise für die Liste selbst aufgerufen: LISTE.METHODE(ARGUMENTE).

Zusammenfassung#

Datentyp

veränderlich

geordnet

indiziert

Duplikate

Liste