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