Wissensdatenbank von GCSoft

>> Wissensdatenbank / Python 3

Sequenzielle Datentypen - list

Die Liste (list) ist ein veränderbarer (mutable) Datentyp, die für die Verwaltung beliebiger Instanzen auch unterschiedlicher
Datentypen geeignet ist.
Beispiel: l = [1, 0.5, "String", 2]

Eine Listekann auch mit einer List Comprehension erzeugt werden. Dabei werden die Listenelemente über eine Bildungsvorschrift
ähnlich einer for-Schleife erzeugt:
Beispiel: [i*i for i in range(10)] => [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Beim Erstellen einer Liste kann auf Unpacking zurückgegriffen werden:
[1, 2, *[3, 4]] => [1, 2 3, 4]

Weitere Operatoren für Listen

Operator Wirkung
s[i] = x Das Element von s mit dem Index i wird durch x ersetzt.
s[i:j] = t Der Teil s[i:j] wird durch t ersetzt. Dabei muss t iterierbar sein.
s[i:j:k] = t Die Elemente s[i:j:k] werden durch die von t ersetzt.
del s[i] = t Das i-te Elemente von s wird entfernt.
del s[i:j] = t Der Teil s[i:j] wird aus s entfernt. Das ist äquivalent zu s[i:j] = [].
del s[i:j:k] = t Die Elemente der Teilfolge s[i:j:k] werden aus s entfernt.

Methoden von list-Instanzen

(s, t sind Listen;
 i, j, k sind ganze Zahlen;
 x ist eine Referenz auf eine beliebige Instanz)

Methode Wirkung
s.append(x) Hängt x ans Ende der Liste s an.
s.extend(t) Hängt alle Elemente der Liste t ans Ende der Liste s an.
s.insert(i, x) Fügt x an der Stelle i in die Liste s ein. Anschließend hat s[i] den Wert von x, wobei alle
folgenden Elemente um eine Stelle nach hinten aufrücken.
s.pop([i]) Gibt das i-te Element der Liste s zurück und entfernt es aus s. Ist i nicht angegeben,
wird das letzte Element genommen.
s.remove(x) Entfernt das erste Vorkommen von x aus der Liste s.
s.reverse() Kehrt die Reihenfolge der Elemente in s um.
s.sort([key, reverse]) Sortiert die Liste s.

Um eine Liste nach bestimmten Kriterien zu sortieren, dient der Parameter key. Die Methode sort erwartet im Parameter key
eine Funktion, die vor jedem Vergleich für beide Operanden aufgerufen wird und deshalb ihrerseits einen Parameter erwartet.

Eine wichtige Eigenschaft von sort ist, dass es sich um eine stabile Sortierung handelt. Stabile Sortierverfahren zeichnen
sich dadurch aus, dass sie beim Sortieren die relative Position gleichwertiger Elemente nicht vertauschen.

Um den Seiteneffekt bei mutale Datentypen wie Listen, dass bei einer Änderung einer Referenz alle Referenzen auf die Instanz
mitgeändert werden, zu verhindern, ist mittels Slicing eine echte Kopie anzulegen:
a = [1337]
b = a[:]