Tuple
Tuples sind wie Listen, die man nicht verändern kann (in Programmierfachchinesisch nennt man das auch "immutable").
Lass uns verschiedene Tuples erstellen:
number_tuple = (1, 20, 3)
string_tuple = ("marc", "leon", "david")
mixed_tuple = (420, True, -5, "hallo", False)
All diese Tuples sind immutable. Wir können nichts mehr hinzufügen, entfernen oder bearbeiten. Aber sonst ist ein Tuple wie eine Liste, also können wir auf die einzelne Indexe wie gewohnt zugreifen:
a = (1, 20, 3)
print(a[1])
20
Nun wenn wir den Tuple ändern wollen, dann ist das einzige, was wir machen können, ein komplett neuen Tupel zu erstellen, um damit den alten Tupel zu überschreiben. Zum Beispiel so:
a = (1, 20, 3)
a = (1, 2, 3, 4)
print(a)
print(len(a))
(1, 2, 3, 4)
4
Oder wir können ein Tupel mit der list
Funktion zu einer Liste konvertieren,
dieser Liste einen weiteren Wert hinzufügen,
diese wieder mit der tuple
Funktion zu einem Tupel konvertieren,
um dann damit den alten Tupelwert zu überschreiben.
Aber du merkst auch schon bestimmt selber, dass dies unnötig kompliziert ist.
Ab diesen Punkt sollte man vielleicht eher eine Liste von Anfang an benutzen,
aber für Lernzwecke zeige ich dir hier den Code,
wie man Tupel im nachhinein verändern kann bzw. bearbeiten kann:
a = (1, 2, 3)
a_list = list(a)
a_list.append(4)
a_list[1] = 20
a = tuple(a_list)
print(a)
print(len(a))
(1, 20, 3, 4)
4
Oder hier ähnlicher Code, aber "cleaner":
a = (1, 2, 3)
print(a)
a = (*a, 4)
print(a)
(1, 2, 3)
(1, 2, 3, 4)
*
ist der "unpacking"-Operator.
*a
ist das selbe wie als würde ich a[0], a[1], a[2], ...
, bis zum Ende des Tupels, schreiben.
Apropos den unpacking-Operator kannst du auch mit Listen verwenden!