15.1 Erstellen einer Kopie eines Tupels
Also, wir wissen bereits, dass Tupel (tuples) unveränderliche Sequenzen von Elementen sind. Wegen dieser Unveränderlichkeit mag das Erstellen einer Kopie eines Tupels als eine unbedeutende Aufgabe erscheinen, da sich Tupel, im Gegensatz zu Listen, nach der Erstellung nicht ändern.
Dennoch kann es in manchen Fällen notwendig sein, eine Kopie eines Tupels zu erstellen, insbesondere wenn es wichtig ist, mit einer separaten Version zu arbeiten, ohne die ursprünglichen Daten zu verändern. Hier sind die Hauptmethoden:
Direkte Zuweisung
Der einfachste Weg, eine Kopie eines Tupels zu erstellen, ist die direkte Zuweisung. Dies wird ein neues Tupel-Objekt erstellen, aber da Tupel unveränderlich sind, werden beide Objekte auf dieselben Daten verweisen.
original_tuple = (1, 2, 3, 4, 5)
copied_tuple = original_tuple
print(copied_tuple)
In diesem Fall wird copied_tuple auf dasselbe Objekt verweisen wie original_tuple.
Verwendung der Funktion tuple()
Eine andere Methode, um eine Kopie eines Tupels zu erstellen, ist die Verwendung der eingebauten Funktion tuple(). Diese Funktion erstellt ein neues Tupel, indem sie die Elemente des ursprünglichen Tupels kopiert.
original_tuple = (1, 2, 3, 4, 5)
copied_tuple = tuple(original_tuple)
print(copied_tuple)
Diese Methode ist besonders nützlich, wenn du sicherstellen möchtest, dass du ein neues Objekt erstellst, selbst wenn das ursprüngliche Objekt ein anderer iterierbarer Datentyp ist.
Umwandlung über eine Liste
Manchmal kann es erforderlich sein, eine veränderliche Kopie eines Tupels in Form einer Liste zu erstellen, um Änderungen vorzunehmen und es dann wieder in ein Tupel umzuwandeln.
original_tuple = (1, 2, 3, 4, 5)
temp_list = list(original_tuple)
temp_list.append(6)
copied_tuple = tuple(temp_list)
print(copied_tuple)
In diesem Beispiel wandeln wir das Tupel zuerst in eine Liste um, fügen ein neues Element hinzu und wandeln die Liste dann wieder in ein Tupel um.
15.2 Verbinden von Tupeln
Im Gegensatz zu Listen können Tupel nach der Erstellung nicht verändert werden, aber du kannst neue Tupel erstellen, indem du bestehende verbindest. Das Verbinden von Tupeln ist eine gängige Operation, die in verschiedenen Programmierungszenarien nützlich sein kann.
Die Hauptmethoden zum Verbinden von Tupeln
Konkatenation
Der einfachste Weg, zwei oder mehr Tupel zu verbinden, ist die Verwendung des Operators +. Diese Methode erstellt ein neues Tupel als Ergebnis der Verkettung der ursprünglichen Tupel.
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
combined_tuple = tuple1 + tuple2
print(combined_tuple)
In diesem Beispiel wird combined_tuple die Elemente (1, 2, 3, 4, 5, 6) enthalten.
Multiplikation mit einer Ganzzahl
Du kannst auch den Operator * verwenden, um ein Tupel mit einer Ganzzahl zu multiplizieren. Dies wiederholt das Tupel eine bestimmte Anzahl von Malen und erstellt ein neues Tupel.
tuple1 = (1, 2, 3)
multiplied_tuple = tuple1 * 3
print(multiplied_tuple)
Hier wird multiplied_tuple die Elemente (1, 2, 3, 1, 2, 3, 1, 2, 3) enthalten.
Funktion itertools.chain
Um eine große Anzahl von Tupeln zu verbinden, kannst du die Funktion chain aus dem Modul itertools verwenden. Dies ist praktisch, wenn die Anzahl der zu verbindenden Tupel im Voraus nicht bekannt ist.
from itertools import chain
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
tuple3 = (7, 8, 9)
combined_tuple = tuple(chain(tuple1, tuple2, tuple3))
print(combined_tuple)
Das Ergebnis wird (1, 2, 3, 4, 5, 6, 7, 8, 9) sein.
15.3 Verschachtelte Tupel
Tupel, die andere Tupel enthalten, werden verschachtelte Tupel (nested tuples) genannt. Verschachtelte Tupel bieten eine bequeme Möglichkeit, Daten zu organisieren und zu strukturieren, insbesondere wenn mehrdimensionale Daten oder komplexe Strukturen dargestellt werden müssen.
Du kannst Tupel kombinieren, indem du verschachtelte Strukturen erstellst. Dies ist nützlich, um Daten in mehrdimensionale Strukturen zu organisieren. Das Erstellen eines verschachtelten Tupels in Python ist genauso einfach wie das Erstellen eines normalen Tupels. Du fügst einfach ein Tupel in ein anderes ein.
nested_tuple = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
In diesem Beispiel enthält nested_tuple drei Tupel, von denen jedes aus drei Elementen besteht.
Beispiel für die Erstellung eines verschachtelten Tupels aus normalen:
In diesem Beispiel enthält nested_tuple drei Tupel, von denen jedes aus drei Elementen besteht.
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
nested_tuple = (tuple1, tuple2)
print(nested_tuple)
Hier wird nested_tuple ((1, 2, 3), (4, 5, 6)) enthalten.
Zugriff auf Elemente eines verschachtelten Tupels
Der Zugriff auf Elemente eines verschachtelten Tupels erfolgt durch mehrfache Indizierung. Zuerst gibst du den Index für das äußere Tupel an, dann für das innere.
nested_tuple = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
# Zugriff auf das Element 5 im zweiten verschachtelten Tupel
element = nested_tuple[1][1]
print(element) # Ausgabe: 5
Mehrdimensionale Arrays
Verschachtelte Tupel werden häufig verwendet, um zweidimensionale oder mehrdimensionale Arrays darzustellen. Zum Beispiel kann eine Datentabelle als Tupel von Tupeln dargestellt werden, wobei jede Zeile der Tabelle ein separates Tupel ist.
Datenstrukturierung
Verschachtelte Tupel sind praktisch zur Strukturierung von Daten, wie geographische Koordinaten (Breitengrad und Längengrad) für mehrere Standorte:
locations = (("New York", (40.7128, -74.0060)),
("Los Angeles", (34.0522, -118.2437)),
("Chicago", (41.8781, -87.6298)))
GO TO FULL VERSION