Python Tuples: Eine Übersicht
Lerne, wie du Python-Tuple-Elemente per Indexzugriff, negativem Index, Slicing und verschachteltem Zugriff abrufst – mit ausführbaren Beispielen.
Diese Seite erklärt, wie du Daten aus einem Python-Tuple liest. Du lernst positiven Indexzugriff, negativen Indexzugriff, Slicing, den Zugriff auf verschachtelte Tuples, den in-Operator und die eingebaute Funktion len(). Du erfährst außerdem, wann Tuples die bessere Wahl gegenüber Listen sind.
Was ist ein Tuple?
Ein Tuple ist eine geordnete, unveränderliche Folge von Werten. „Geordnet" bedeutet, dass jedes Element eine feste Position hat, die du per Index ansprechen kannst. „Unveränderlich" bedeutet, dass du nach der Erstellung keine Elemente ändern, hinzufügen oder entfernen kannst – genau das macht Tuples nützlich, wenn die Datenintegrität wichtig ist.
# Create a tuple with parentheses
colors = ("red", "green", "blue")
# The built-in tuple() function works too
digits = tuple([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])Alles, was du beim Erstellen eines Tuples tun kannst, findest du im Kapitel Python Tuples.
Elemente per Index aufrufen
Wie Listen verwenden Tuples nullbasierte Indizierung: Das erste Element hat den Index 0, das zweite den Index 1 und so weiter.
Index: 0 1 2
| | |
colors = ("red", "green", "blue")Syntax: tuple_name[index]
Der Zugriff auf einen nicht vorhandenen Index löst einen IndexError aus:
colors = ("red", "green", "blue")
print(colors[5]) # IndexError: tuple index out of rangeNegativer Indexzugriff
Python erlaubt es, vom Ende des Tuples aus zu zählen, indem negative Zahlen verwendet werden. Der Index -1 ist das letzte Element, -2 das vorletzte und so weiter.
Index: 0 1 2
Neg idx: -3 -2 -1
| | |
colors = ("red", "green", "blue")Negativer Indexzugriff ist besonders praktisch, wenn du das letzte Element benötigst, ohne len() aufzurufen.
Ein Tuple slicen
Ein Slice extrahiert ein Teil-Tuple. Die Syntax lautet tuple_name[start:stop], wobei start inklusiv und stop exklusiv ist.
fruits = ("apple", "banana", "cherry", "date", "elderberry")
print(fruits[1:3]) # ('banana', 'cherry') — index 1 up to (not including) 3
print(fruits[:3]) # ('apple', 'banana', 'cherry') — from beginning to index 3
print(fruits[2:]) # ('cherry', 'date', 'elderberry') — from index 2 to end
print(fruits[:]) # entire tuple (useful for shallow copy)Du kannst einen Schrittwert als drittes Argument angeben: tuple_name[start:stop:step].
numbers = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
print(numbers[::2]) # (0, 2, 4, 6, 8) — every second element
print(numbers[::-1]) # (9, 8, 7, 6, 5, 4, 3, 2, 1, 0) — reversedEin Slice gibt immer ein neues Tuple zurück – das Original wird niemals verändert.
Die Länge mit len() ermitteln
len() gibt die Anzahl der Elemente in einem Tuple zurück.
fruits = ("apple", "banana", "cherry", "date", "elderberry")
print(len(fruits)) # 5Das ist nützlich, um einem IndexError vorzubeugen oder um mit einem range() zu iterieren:
for i in range(len(fruits)):
print(i, fruits[i])
# 0 apple
# 1 banana
# 2 cherry
# 3 date
# 4 elderberryZugehörigkeit mit in prüfen
Der in-Operator prüft, ob ein Wert in einem Tuple vorhanden ist, und gibt True oder False zurück.
fruits = ("apple", "banana", "cherry")
print("banana" in fruits) # True
print("mango" in fruits) # False
print("mango" not in fruits) # TrueVerwende in anstelle einer Exception-Behandlung, wenn du einfach wissen möchtest, ob ein Wert vorhanden ist.
Zugriff auf verschachtelte Tuples
Tuples können andere Tuples enthalten. Um ein Element innerhalb eines verschachtelten Tuples zu erreichen, kettest du die Index-Klammern aneinander.
matrix = ((1, 2), (3, 4), (5, 6))
print(matrix[0]) # (1, 2)
print(matrix[0][1]) # 2 — row 0, column 1
print(matrix[2][0]) # 5 — row 2, column 0Die gleiche Technik funktioniert bei gemischter Verschachtelung, zum Beispiel bei einem Tuple aus Strings und Zahlen:
record = ("Alice", 30, ("Python", "SQL"))
print(record[0]) # Alice
print(record[2]) # ('Python', 'SQL')
print(record[2][0]) # PythonTuple-Operationen
Obwohl du ein Tuple nicht verändern kannst, kannst du Tuples kombinieren, um neue zu erzeugen.
Tuples verketten
Verwende +, um zwei oder mehr Tuples zu verbinden:
Tuples wiederholen
Verwende *, um ein Tuple eine bestimmte Anzahl von Malen zu wiederholen:
Nützliche Tuple-Methoden
Tuples haben zwei eingebaute Methoden, die beim Lesen von Daten helfen:
| Methode | Was sie zurückgibt |
|---|---|
tuple.count(value) | Anzahl der Vorkommen von value im Tuple |
tuple.index(value) | Index des ersten Vorkommens von value |
colors = ("red", "green", "blue", "red", "red")
print(colors.count("red")) # 3
print(colors.index("green")) # 1Eine vollständige Referenz findest du im Kapitel Tuple Methods.
Wann ein Tuple statt einer Liste verwenden?
| Situation | Tuple | Liste |
|---|---|---|
| Daten sollen sich nicht ändern (Koordinaten, RGB-Werte, Datenbankzeilen) | Ja | Nein |
| Als Dictionary-Schlüssel verwendet | Ja | Nein – Listen sind nicht hashbar |
| Geringer Speicher-/Geschwindigkeitsvorteil bei nur-lese-Daten | Ja | Nein |
| Elemente anhängen, entfernen oder sortieren nötig | Nein | Ja |
Wenn du ein Tuple ändern musst, findest du in Update Tuples den üblichen Workaround, ein Tuple in eine Liste umzuwandeln und zurück.
Verwandte Themen
- Python Tuples — Tuples erstellen, einelementige Tuples,
tuple()-Konstruktor - Unpack Tuples — Tuple-Elemente in einer Zeile Variablen zuweisen
- Loop Tuples — ein Tuple mit
forundwhiledurchlaufen - Update Tuples — Workarounds zum Ändern von Tuple-Inhalten
- Join Tuples — Verkettung und
sum()-Technik - Tuple Methods —
count()undindex()im Detail - Python Lists — die veränderliche Alternative zu Tuples