Kurz: Ein Tupel (tuple) ist wie eine Liste, aber unveränderlich. Es steht in runden Klammern.
Teil des Kurses Python
Ein Tupel (tuple) ist wie eine Liste, aber unveränderlich. Es steht in runden Klammern. Tupel eignen sich für Werte, die zusammengehören und sich nicht ändern sollen, zum Beispiel Koordinaten oder Rückgabewerte mit mehreren Teilen.
punkt = (3, 4)
farbe = ("rot", "grün", "blau")
einzeln = (42,) # ein Element braucht ein Komma!
leer = ()
print(punkt, type(punkt))
print(type((42)), type(einzeln))Ausgabe:
(3, 4) <class 'tuple'>
<class 'int'> <class 'tuple'>Die Klammern sind sogar oft optional: Das Komma macht das Tupel.
Zugriff wie bei Listen
t = ("a", "b", "c", "d")
print(t[0], t[-1])
print(t[1:3])
print(len(t))
print("b" in t)
print(t.index("c"), t.count("a"))Ausgabe:
a d
('b', 'c')
4
True
2 1Ändern geht nicht:
t = (1, 2, 3)
t[0] = 99Fehlermeldung:
Traceback (most recent call last):
File "beispiel.py", line 2, in <module>
t[0] = 99
TypeError: 'tuple' object does not support item assignmentEntpacken
Tupel (und Listen) lassen sich auf mehrere Variablen verteilen:
position = (10, 20, 30)
x, y, z = position
print(x, y, z)
name, *rest = ("Mia", 17, "Berlin")
print(name, rest)Ausgabe:
10 20 30
Mia [17, 'Berlin']Das ist auch der Grund, warum der Tausch a, b = b, a funktioniert: Rechts entsteht ein Tupel, links wird es entpackt.
Funktionen mit mehreren Rückgabewerten
def min_max(werte):
return min(werte), max(werte) # ein Tupel
kleinster, groesster = min_max([4, 9, 1, 7])
print(kleinster, groesster)
print(min_max([4, 9, 1, 7]))Ausgabe:
1 9
(1, 9)Tupel als Schlüssel und in Mengen
Weil Tupel unveränderlich sind, dürfen sie als Dictionary-Schlüssel dienen, Listen nicht:
entfernung = {("Berlin", "Hamburg"): 289, ("Berlin", "München"): 504}
print(entfernung[("Berlin", "Hamburg")])Ausgabe:
289Tupel und Listen umwandeln
print(tuple([1, 2, 3]))
print(list((1, 2, 3)))Ausgabe:
(1, 2, 3)
[1, 2, 3]Hinweis
Enthält ein Tupel veränderliche Elemente (zum Beispiel eine Liste), kann sich deren Inhalt trotzdem ändern. Nur die Zuordnung der Positionen ist fest.
Merke
- Tupel:
(a, b, c), geordnet und unveränderlich - Ein Tupel mit einem Element braucht ein Komma:
(42,) - Entpacken:
x, y = punkt - Perfekt für feste Gruppen und mehrere Rückgabewerte
- Als Dictionary-Schlüssel erlaubt
Übungsaufgabe
Schreibe eine Funktion, die für zwei Zahlen Summe und Produkt als Tupel zurückgibt, und entpacke das Ergebnis in zwei Variablen.
Quiz zur Selbstkontrolle
Wie schreibst du ein Tupel mit genau einem Element 5?
- (5,) (richtig)
- (5)
- [5]
- tuple(5)
Was ist der Hauptunterschied zwischen Liste und Tupel?
- Tupel sind unveränderlich (richtig)
- Tupel sind schneller zu schreiben
- Listen können nur Zahlen speichern
- Tupel haben keine Reihenfolge
Was macht x, y = (1, 2)?
- x wird 1 und y wird 2 (richtig)
- Es entsteht eine Liste
- Es gibt einen Fehler
- Beide werden zu (1, 2)
Weiter im Kurs
Zurück: List Comprehensions
Weiter: Mengen (Sets)
Alle Kapitel: Python im Überblick