Das Python Tuple – Die große Übersicht

    Avatarbild von Perica Glavas
    Perica Glavas

    veröffentlicht am: 04.09.2020
    zuletzt aktualisiert am: 01.02.2023

    Die Python Tuple, beziehungsweise Python Tupel, Datenstruktur im Überblick!

    In Python gibt es vier integrierte Sammlungen. List, Set, Tuple und das Dictionary. In diesem Artikel werden wir die dritte Sammlung, das Python Tuple, näher besprechen.

    Was ist ein Python Tuple?

    Ein Tuple ist eine geordnete, sequenzielle Sammlung. Es kann Daten aller Typen aufnehmen, die über einen Index erreichbar sind. Ein Tuple kann im Gegensatz zu einer Liste nicht geändert werden.

    Sobald ein Element in das Tuple eingefügt wurde, kann es nicht mehr verändert oder gelöscht werden. Es bedeutet allerdings nicht, dass Änderungen unmöglich sind. Alle diese Eigenschaften werden wir in diesem Artikel näher kennen lernen.

    Wie erstellt man ein Python Tuple?

    Uns stehen drei Wege zur Verfügung um ein Tuple zu erstellen. Wir können es entweder über Klammern, den Konstruktor oder durch Tuplepacking erstellen.

    Starten wir zuerst mit den Klammern.

    tuple1 = ()

    „tuple1“ hält kein einziges Element. Es ist ein leeres Tuple. Jetzt können wir das Tuple mit ein paar beispielhaften Werten füllen.

    tuple1 = (1, 2, 3, 4, 5)

    „tuple1“ hält nun fünf Elemente. Die einzelnen Elemente werden durch ein Komma getrennt.

    Ein Python Tuple welches mit Klammern erstellt worden ist.

    Wie eingangs erwähnt, kann ein Tuple Elemente verschiedener Datentypen beinhalten.

    tuple1 = (1, 2, 3, 4, 5, 'a', 'b', 'c', "abc", True)

    Jetzt hält das Tuple verschiedene Datentypen.

    Python Tuple mit verschiedenen Datentypen.

    Zudem kann ein Tuple auch andere Sammlungen beinhalten.

    tuple1 = (1, 2, [1, 2, 3], 3)
    Beispielhaftes Python Tuple

    Eine weitere Möglichkeit ist die Verwendung des Konstruktors.

    tuple1 = tuple();

    Jetzt haben wir erneut ein leeres Tuple. Wie bereits zuvor können wir die Elemente innerhalb runder Klammern übergeben.

    tuple1 = tuple((1, 2, 3, 4, 5))
    Sammlung durch Konstruktor erstellt

    Die dritte Möglichkeit ist das Tuplepacking. In dem Fall können wir das Tuple ohne Klammern erstellen.

    tuple1 = (1, 2, 3, 4, 5)
    tuple2 = 1, 2, 3, 4, 5

    Beide Tuple sind gleich. Dies nennt sich Tuplepacking. Jetzt können wir ein weiteres Konzept verwenden, dass wir Tupleunpacking nennen.

    tuple2 = 1, 2, 3, 4, 5
    a, b, c, d, e = tuple2

    Die Werte sind nun a = 1, b = 2, c = 3, d = 4, und e = 5.

    Tupleunpacking mit Python.

    Wir müssen allerdings beachten, dass die linken Werte die gleiche Anzahl wie die Elemente des Tuples haben. Ist dies nicht der Fall, bekommen wir eine Fehlermeldung.

    tuple2 = 1, 2, 3, 4, 5
    a, b = tuple2

    Die Anzahl der jeweiligen Elemente ist ungleich (2 zu 5).

    Fehlermeldung, da beide Tuples nicht die gleiche Länge haben.

    Wir können außerdem Probleme beim Erstellen eines Tuples über die Runden Klammern bekommen.

    tuple1 = ("Hello World!")
    tuple2 = (1, 2, 3, 4, 5)
    typeof(tuple1)
    typeof(tuple2)

    Beide Tuples wurden über die Klammern erstellt. Der Typ der beiden Objekte sollte also ein Tuple sein.

    Ein Tuple mit einem einzelnen Element.

    „tuple1“ ist allerdings ein String. Selbstverständlich ist das ein Problem. Dieses können wir umgehen, wenn wir stattdessen den Konstruktor nutzen.

    tuple1 = tuple(("Hello World!"))
    type(tuple1)
    Ein Tuple mit einem einzelnen Element ist das Resultat

    Der Datentyp ist jetzt das Tuple.

    Das gleiche Problem tritt auch beim Packing auf. Wollen wir also lediglich ein einzelnes Element in das Python Tuple einfügen, sollten wir immer den Konstruktor verwenden.

    Die einzelnen Elemente eines Python Tuples adressieren

    Die Adressierung ist der üblichste Weg in Python. Tuples sind über einen Index adressierbar. Also können wir die eckigen Klammern verwenden, um ein oder auch gleich mehrere Elemente auszuwählen.

    tuple1 = (1, 2, 3, 4, 5)
    tuple1[0]

    Der 0te Index ist das erste Element im Tuple.

    0ter Index eines Tuples

    Über eine höhere Zahl können wir auch die anderen Elemente adressieren.

    tuple1 = (1, 2, 3, 4, 5)
    tuple1[0]
    tuple1[1]
    tuple1[2]
    tuple1[3]
    tuple1[4]
    Beispieladressierungen

    Über denselben Weg können wir auch bestimmte Teilmengen des Tuples adressieren. Dafür müssen wir lediglich den Start- und Endpunkt der Adressierung angeben. Diese trennen wir dann mit einem Doppelpunkt.

    tuple1 = (1, 2, 3, 4, 5)
    tuple1[0:3]

    Der Startpunkt liegt bei 0. Der Endpunkt muss immer um eine Stelle verringert werden.

    Teilmenge eines Tuples

    Schauen wir uns dafür einige Beispiele an.

    tuple1 = (1, 2, 3, 4, 5)
    tuple1[1:3]
    tuple1[2:4]
    tuple1[0:4]
    Eine weitere Teilmenge

    Wir können auch negative Werte verwenden, um das Tuple vom Ende an zu adressieren.

    tuple1 = (1, 2, 3, 4, 5)
    tuple1[-1]
    tuple1[-2]

    Der erste Aufruf wird das letzte Element adressieren. Der Aufruf mit -2 wird das vorletzte Element adressieren.

    Das vorletzte Element eines Tuples adressieren.

    Über ein Python Tuple iterieren

    Wir können mittels einer for-Schleife über das Tuple iterieren.

    tuple1 = (1, 2, 3, 4, 5)
    for ele in tuple1:
    	print(ele)

    Das ist der häufigste gewählte Weg, um über das Tuple zu iterieren.

    Iteration über ein Python Tuple mit Hilfe einer for-Schleife.

    Wir können auch einen Index verwenden, um zu iterieren.

    tuple1 = (1, 2, 3, 4, 5)
    for i in range(0,len(tuple1)):
    	print(tuple1[i])

    Die integrierte Funktion Python range wird für die Schleife verwendet. Die Zahl „i“ geht dabei bei 0 los und endet beim letzten Element des Tuple.

    Elemente zu einem Tuple hinzufügen

    Normalerweise können wir Tuples in Python nicht verändern. Wir können also keine neuen Elemente einfügen. Was wir hingegen sehr wohl tun können, ist ein neues Tuple zu erstellen und die Elemente des Alten inklusive der Neuen einzufügen. Dafür können wir den +-Operator verwenden.

    tuple1 = (1, 2, 3 , 4, 5)
    tuple2 = tuple1 + (6, 7)

    Im obigen Quellcode werden zusätzlich zum ersten Tuple noch die Werte 6 und 7 mittels des +-Operators eingefügt.

    Element zu einem Tuple hinzufügen.

    Wir können mittels des +-Operators beliebig viele Tuple zusammenfügen.

    So können wir auch Elemente an eine gewünschte Position einfügen.

    tuple1 = (1, 2, 3 , 4, 5)
    tuple2 = tuple1[0:2] + (100, 200) + tuple1[2:len(tuple1)]

    Es werden zwei neue Elemente an der 2. Stelle eingefügt.

    Elemente an bestimmte Positionen hinzufügen.

    Ein weiterer Weg besteht in der Umwandlung in eine Liste. So können wir die Elemente einfach der Liste hinzufügen und dann die Liste zurück in ein Tuple wandeln.

    tuple1 = (1, 2, 3 , 4, 5)
    list1 = list(tuple1)
    list1.append(6)
    list1.append(7)
    tuple1 = tuple(list1)

    Zunächst wird das Tuple mittels der list()-Funktion in eine Liste umgewandelt. Da die List in Python normal veränderbar ist, können wir die append()-Funktion verwenden, um neue Elemente anzuhängen. Danach können wir mittels des Konstruktors die Liste zurück in ein Tuple umwandeln.

    Einzelne Werte eines Tuples aktualisieren

    Die Werte der Elemente können aufgrund der Eigenschaften des Tuples nicht aktualisiert werden. Wir werden einen Fehler erhalten, wenn wir dies versuchen sollten.

    tuple1 = (1, 2, 3, 4, 5)
    tuple[0] = 100

    Über den Index können wir zwar den Wert erhalten, diesen allerdings nicht verändern.

    Fehlermeldung beim Versuch die Werte eines Python Tuples zu aktualisieren.

    Wir können aber erneut das Tuple in eine List umwandeln und dann den Wert verändern.

    tuple1 = (1, 2, 3 , 4, 5)
    list1 = list(tuple1)
    list1[0] = 100
    tuple1 = tuple(list1)

    Weil die List veränderbar ist, können wir den Wert aktualisieren. Danach wandeln wir die List einfach zurück in ein Tuple.

    Umwandlung zu einer Liste um diese danach bearbeiten zu können.

    Einzelne Werte eines Tuples entfernen

    Elemente können nicht aus einem Tuple entfernt werden. Wir werden einen Fehler erhalten, wenn wir dies versuchen sollten.

    tuple1 = (1, 2, 3, 4, 5)
    del tuple1[0]

    Die del()-Funktion sollte das erste Element des Tuples löschen.

    Fehlermeldung bei der Entfernung eines Wertes.

    Wir können zwar kein einzelnes Element löschen, können allerdings das ganze Tuple löschen.

    Entfernung eines ganzen Python Tuples.

    Wenn wir ein einzelnes Element aus dem Tuple löschen möchten, müssen wir erneut in eine Liste umwandeln. Dann können wir die del()-Funktion nutzen.

    tuple1 = (1, 2, 3 , 4, 5)
    list1 = list(tuple1)
    del list1[0]
    tuple1 = tuple(list1)

    Die del()-Funktion löscht das angegebene Element.

    Prüfen, ob ein Wert im Tuple enthalten ist: der in-Operator

    Den in-Operator können wir nutzen, um das Tuple auf ein bestimmtes Element hin zu testen. Es gibt an, ob sich das Element im Tuple befindet, oder nicht.

    tuple1 = (1, 2, 3, 4, 5)
    2 in tuple1
    4 in tuple1
    100 in tuple1
    200 in tuple1

    Der in-Operator gibt einen boolschen Wert zurück. Wenn das Element existiert, wird True zurückgegeben. Andernfalls wird False zurückgegeben.

    Prüfung ob ein Wert im Tuple enthalten ist.

    9. Wichtige Tuple-Methoden

    Da das Tuple unveränderbar ist, gibt es keine integrierten Methoden, um dieses zu verändern. Es gibt allerdings zwei integrierte Funktion für das Tuple in Python.

    Index()

    Die index()-Funktion gibt den Index des übergebenen Wertes zurück.

    tuple1 = (1, 2, 3, 4, 5)
    tuple1.index(2)
    tuple1.index(5)
    Den Index eines Wertes ermitteln mit der index-Funktion.
    tuple1 = (1, 2, 3, 4, 5)
    tuple1.index(100)

    Wir werden einen Value-Fehler erhalten, da das Element nicht im Tuple enthalten ist.

    Gesuchtes Element ist nicht in dem Tuple enthalten.

    Count()

    Die count()-Funktion wird verwendet, um die Anzahl der Vorkommnisse des Elements im Tuple zu erhalten.

    tuple1 = (1, 2, 3, 4, 5, 2, 3, 2, 3)
    tuple1.count(2)
    tuple1.count(3)
    Ermittlung der Häufigkeit eines Wertes in einem Tuple mit der count()-Funktion.

    Es wird 0 zurückgegeben, wenn das Element nicht im Tuple enthalten ist.

    tuple1 = (1, 2, 3 , 4, 5, 2, 3, 2, 3)
    tuple1.count(100)
    Der Wert ist nicht im Tuple enthalten.

    Zusammenfassung – Das Python Tuple

    Wie wir gelernt haben, verhält sich das Tuple ähnlich zur List. Allerdings sind einige Einschränkungen vorhanden. Der größte Unterschied ist die fehlende Möglichkeit zur Änderung. Wir können also keine neuen Elemente hinzufügen, vorhandene aktualisieren oder löschen. Müssen wir diese Funktionen verwenden, ist ein Umweg über die List notwendig.

    Wenn wir verschiedene Datentypen in einer Sammlung speichern wollen, sollten wir das Tuple verwenden. Sind alle Elemente vom selben Datentyp, sollten wir die List verwenden. Handelt es sich hingegen um eine nicht änderbare Sammlung, ist das Iterieren schneller und die Daten sind besser gegen Fremdzugriff gesichert.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig