Tupel in Python ermöglichen es, mehrere Werte oder Variablen in einem eigenen Behälter unveränderlich zu sammeln.
Tupel sind schneller und kleiner als Listen, allerdings kann man ihre Inhalte nach der Erstellung nicht bearbeiten.
Es gibt zwei Möglichkeiten, um ein Tupel zu erstellen.
- Man listet mehrere Werte mit Kommata getrennt auf:
tupel = "a", 2, True
print(tupel)
### Output:
>> ('a', 2, True)
- Man listet mehrere Werte mit Kommata getrennt auf und umschließt sie mit runden Klammern:
tupel = ("a", 2, True)
print(tupel)
### Output
>> ('a', 2, True)
Auf einzelne Tupel-Werte zugreifen
Möchten wir nur einen Wert aus dem Tupel ausgeben, schreiben wir hinter dem Tupel eckige Klammern und die Indexstelle des Tupels:
benutzerdaten = ("xXDeStRoYeR2009Xx", "passwort123", "[email protected]")
print(benutzerdaten[0])
print(benutzerdaten[2])
### Output:
>> xXDeStRoYeR2006Xx
>> [email protected]
Tupel-Werte Variablen zuordnen
Eine der häufigsten Anwendungsfälle von Tupeln ist es, die Inhalte Variablen zuzuordnen. Damit können wir mit einer Zeile Code gleich mehrere Werte mehreren Variablen zuordnen. Im Code listen wir unsere Variablennamen mit Kommata getrennt auf und setzen sie mit unserem Tupel gleich.
Im folgenden Beispiel haben wir ein Tupel mit 3 meiner Würfelversuche in Mensch ärgere dich nicht. Ich habe gerade eine 4, dann eine 2 und dann eine 5 gewürfelt. Ich will diese Werte in eine Datenbank eintragen und später in Korrelation mit meinen Wutanfällen setzen:
versuch_1, versuch_2, versuch_3 = (4, 2, 5)
print(versuch_1)
print(versuch_2)
print(versuch_3)
### Output:
>>> 4
>>> 2
>>> 5
Diese Methode ist deutlich angenehmer und kürzer zu coden als 3 Zeilen mit Zuordnungen der Inputs.
Tupel mit einem Element
Wenn wir ein Tupel mit einem Element einer Variablen zuordnen möchten, wird uns auffallen, dass das Tupel zum String umgewandelt wird:
var = ("a")
print(var)
### Output:
>>> a
Das liegt wie bereits erklärt daran, dass wir gleich viele
Tupeleinträge haben wie Variablen. Um diesen einzelnen Tupel nicht als Variable
sondern als Tupel zu speichern, müssen wir nach dem Wert ein Komma setzen:
var = ("a",)
print(var)
### Output:
>>> ('a',)
Unterschied zwischen Tupeln und Listen
Tupel benötigen weniger Speicherplatz als Listen. Das kann man ganz einfach nachweisen, indem man in Python ein Tupel und eine Liste mit identischen Werten füllt und daraufhin die Byte-Größe abfragt:
from sys import getsizeof
tupel = (0,1,2,1.5,3.33,7.77,"a","b","c","abc",True,False)
liste = [0,1,2,1.5,3.33,7.77,"a","b","c","abc",True,False]
print("Tupel Byte-Größe:", getsizeof(tupel))
print("Liste Byte-Größe:", getsizeof(liste))
### Output:
>>> Tupel Byte-Größe: 144
>>> Liste Byte-Größe: 160
Insbesondere bei sehr großen Datensätzen kann das wesentlich für die Performance von Datenanalysen sein.
- Tupel lassen sich damit schneller erstellen
- Schleifen mit Tupeln laufen schneller ab
Dieser Vorteile sind allerdings auch mit Nachteilen gegenüber Listen verbunden:
Innerhalb von Listen kann man Daten verändern, hinzufügen, entfernen, umsortieren und viel mehr. Tupel sind dagegen unveränderlich.