====== tuple in Python3 ======
Tupel sind Listen relativ ähnlich, aber doch ganz anders. Im Vergleich zu Listen sind Tupel **unveränderlich**. Man kann keine Elemente hinzufügen, herausnehmen oder verändern. Möglich ist allerdings schon, dass ein Tupel ein veränderliches Element wie eine Liste enthält. Listen beinhalten meist homogene Elemente, Tupel beinhalten meist **heterogene** Elemente. \\
Ein Anwendungsfall ist: Ein Datensatz wird einer Person wird aus einer Datenbank geladen. Der Datensatz enthält den Namen, die Postleitzahl und die Stadt in der die Person lebt. Das kann man einfach in einem Tupel unterbringen und darstellen. \\
Anders als Listen wird ein Tupel mit runden Klammern erstellt. Hier ein Beispiel:
# Heterogenes Tupel erstellen mit einer Zahl und zwei Strings..
tuple = ("Herbert", 1234, "Musterstadt")
# .. und ausgeben
print(tuple) # Die Ausgabe wird sein: ('Herbert', 1234, 'Musterstadt')
Man kann die Tupel packen und entpacken (also Variablen zuweisen). Diese Variablen lassen sich dann klarerweise verändern und wieder in ein neues Tupel packen, wenn man das denn möchte. Das würde wie folgt aussehen:
# Tupel packen (die Klammern sind nicht nötig, solange kein komplexes Gebilde ins Tupel gepackt wird)
tuple = "Herbert", 1234, "Musterstadt"
# Das Tupel ausgeben
print(tuple)
# und entpacken
name, zip, city = tuple
# einen Wert verändern
zip = 4321
# und wieder in ein Tupel packen
tuple = name, zip, city
# ausgeben
print(tuple) # Die Ausgabe wird sein: ("Herbert", 4321, "Musterstadt")
Auch mit einem Index kann man auf die einzelnen Elemente zugreifen, jedoch nur lesend.
tuple = "Herbert", 1234, "Musterstadt"
print(tuple[0]) # Ausgabe wird sein: Herbert
print(tuple[1]) # Ausgabe wird sein: 1234
print(tuple[2]) # Ausgabe wird sein: Musterstadt