W3docs

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]

python— editable, runs on the server

Der Zugriff auf einen nicht vorhandenen Index löst einen IndexError aus:

colors = ("red", "green", "blue")
print(colors[5])  # IndexError: tuple index out of range

Negativer 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")
python— editable, runs on the server

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)  — reversed

Ein 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))  # 5

Das 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 elderberry

Zugehö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)  # True

Verwende 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 0

Die 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])    # Python

Tuple-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:

python— editable, runs on the server

Tuples wiederholen

Verwende *, um ein Tuple eine bestimmte Anzahl von Malen zu wiederholen:

python— editable, runs on the server

Nützliche Tuple-Methoden

Tuples haben zwei eingebaute Methoden, die beim Lesen von Daten helfen:

MethodeWas 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"))  # 1

Eine vollständige Referenz findest du im Kapitel Tuple Methods.

Wann ein Tuple statt einer Liste verwenden?

SituationTupleListe
Daten sollen sich nicht ändern (Koordinaten, RGB-Werte, Datenbankzeilen)JaNein
Als Dictionary-Schlüssel verwendetJaNein – Listen sind nicht hashbar
Geringer Speicher-/Geschwindigkeitsvorteil bei nur-lese-DatenJaNein
Elemente anhängen, entfernen oder sortieren nötigNeinJa

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

Übungen

Übung
What are the ways to access items in a Python tuple?
What are the ways to access items in a Python tuple?
Was this page helpful?