Tupel in Python verstehen und verwenden

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab erhalten Sie ein umfassendes Verständnis von Tupeln in Python. Sie lernen, wie man Tupel erstellt, auf ihre Elemente mittels Indizierung und Slicing zugreift und wie man sie unter Berücksichtigung ihrer Unveränderlichkeit durch Techniken wie Slicing und Konkatenation modifiziert.

Darüber hinaus werden Sie sich mit Tupeloperatoren und Unpacking beschäftigen und erfahren, wie Sie effizient mit Tupeldaten arbeiten können. Abschließend werden Sie gängige eingebaute Tupelfunktionen und -methoden erkunden und nutzen, um verschiedene Operationen auf Tupeln durchzuführen.

Tupel erstellen und darauf zugreifen

In diesem Schritt lernen Sie, wie Sie Tupel in Python erstellen und über Indizierung und Slicing auf ihre Elemente zugreifen. Tupel sind geordnete, unveränderliche Sammlungen von Elementen.

Es gibt verschiedene Möglichkeiten, Tupel zu erstellen:

Sie können ein leeres Tupel mit einem Paar Klammern erstellen: ().

Lassen Sie uns ein leeres Tupel erstellen und seinen Typ überprüfen. Öffnen Sie das integrierte Terminal in der WebIDE und navigieren Sie zum Verzeichnis ~/project, falls Sie sich nicht bereits dort befinden.

cd ~/project

Erstellen Sie nun eine neue Python-Datei namens tuple_creation.py im Verzeichnis ~/project über den Dateiexplorer der WebIDE. Öffnen Sie die Datei und fügen Sie den folgenden Code hinzu:

## Create an empty tuple
empty_tuple = ()
print(empty_tuple)
print(type(empty_tuple))

Speichern Sie die Datei. Führen Sie nun das Skript im Terminal aus:

python tuple_creation.py

Sie sollten die folgende Ausgabe sehen:

()
<class 'tuple'>

Sie können ein Tupel mit einem einzelnen Element erstellen, indem Sie ein nachgestelltes Komma hinzufügen: (a,) oder a,. Ohne das Komma wird es nicht als Tupel behandelt.

Fügen Sie den folgenden Code zu Ihrer tuple_creation.py-Datei hinzu:

## Create a single-element tuple
single_element_tuple_with_comma = (5,)
print(single_element_tuple_with_comma)
print(type(single_element_tuple_with_comma))

## Without the comma, it's just an integer
not_a_tuple = (5)
print(not_a_tuple)
print(type(not_a_tuple))

Speichern Sie die Datei und führen Sie sie erneut aus:

python tuple_creation.py

Die Ausgabe zeigt den Unterschied:

()
<class 'tuple'>
(5,)
<class 'tuple'>
5
<class 'int'>

Sie können ein Tupel mit mehreren Elementen erstellen, indem Sie diese durch Kommas trennen, optional in Klammern eingeschlossen: a, b, c oder (a, b, c).

Fügen Sie den folgenden Code zu Ihrer tuple_creation.py-Datei hinzu:

## Create a tuple with multiple elements
multi_element_tuple = 'apple', 'banana', 'cherry'
print(multi_element_tuple)
print(type(multi_element_tuple))

another_multi_element_tuple = ('red', 'green', 'blue')
print(another_multi_element_tuple)
print(type(another_multi_element_tuple))

Speichern und führen Sie das Skript aus:

python tuple_creation.py

Die Ausgabe wird sein:

()
<class 'tuple'>
(5,)
<class 'tuple'>
5
<class 'int'>
('apple', 'banana', 'cherry')
<class 'tuple'>
('red', 'green', 'blue')
<class 'tuple'>

Schließlich können Sie die eingebaute Funktion tuple() verwenden, um ein iterierbares Objekt (wie eine Zeichenkette, eine Liste oder ein anderes Tupel) in ein Tupel umzuwandeln.

Fügen Sie den folgenden Code zu Ihrer tuple_creation.py-Datei hinzu:

## Convert a string to a tuple
string_to_tuple = tuple("hello")
print(string_to_tuple)
print(type(string_to_tuple))

## Convert a list to a tuple
list_to_tuple = tuple([1, 2, 3, 4])
print(list_to_tuple)
print(type(list_to_tuple))

Speichern und führen Sie das Skript aus:

python tuple_creation.py

Die Ausgabe enthält die neuen Tupel:

()
<class 'tuple'>
(5,)
<class 'tuple'>
5
<class 'int'>
('apple', 'banana', 'cherry')
<class 'tuple'>
('red', 'green', 'blue')
<class 'tuple'>
('h', 'e', 'l', 'l', 'o')
<class 'tuple'>
(1, 2, 3, 4)
<class 'tuple'>

Nun wollen wir den Zugriff auf Elemente mittels Indizierung und Slicing untersuchen. Ähnlich wie bei Zeichenketten und Listen können Sie auf einzelne Elemente über ihren Index (beginnend bei 0) zugreifen und Teilsequenzen mittels Slicing extrahieren.

Erstellen Sie eine neue Python-Datei namens tuple_access.py im Verzeichnis ~/project. Fügen Sie den folgenden Code hinzu:

## Define a sample tuple
my_tuple = ('p', 'y', 't', 'h', 'o', 'n')

## Access elements using indexing
print("First element:", my_tuple[0])
print("Third element:", my_tuple[2])
print("Last element:", my_tuple[-1]) ## Negative indexing

## Access elements using slicing
print("Elements from index 1 to 4:", my_tuple[1:5])
print("Elements from the beginning to index 3:", my_tuple[:4])
print("Elements from index 2 to the end:", my_tuple[2:])
print("All elements (a copy):", my_tuple[:])
print("Reverse the tuple:", my_tuple[::-1])

Speichern Sie die Datei und führen Sie sie im Terminal aus:

python tuple_access.py

Sie sehen die Ausgabe, die Indizierung und Slicing demonstriert:

First element: p
Third element: t
Last element: n
Elements from index 1 to 4: ('y', 't', 'h', 'o')
Elements from the beginning to index 3: ('p', 'y', 't', 'h')
Elements from index 2 to the end: ('t', 'h', 'o', 'n')
All elements (a copy): ('p', 'y', 't', 'h', 'o', 'n')
Reverse the tuple: ('n', 'o', 'h', 't', 'y', 'p')

In diesem Schritt haben Sie gelernt, wie Sie Tupel auf verschiedene Arten erstellen und wie Sie über Indizierung und Slicing auf ihre Elemente zugreifen.

Tupel mit Slicing und Konkatenation modifizieren

In diesem Schritt lernen Sie, wie Sie Tupel "modifizieren". Da Tupel unveränderlich sind, können Sie ihre Elemente nach der Erstellung nicht direkt ändern. Sie können jedoch neue Tupel basierend auf vorhandenen erstellen, indem Sie Slicing und Konkatenation verwenden.

Lassen Sie uns demonstrieren, dass eine direkte Modifikation nicht möglich ist. Erstellen Sie eine neue Python-Datei namens tuple_modification.py im Verzeichnis ~/project. Fügen Sie den folgenden Code hinzu:

## Define a sample tuple
my_tuple = ('a', 'b', 'c', 'd', 'e')

## Attempt to modify an element (this will cause an error)
## my_tuple[0] = 'f' ## Uncommenting this line will raise a TypeError

print(my_tuple)

Speichern Sie die Datei. Wenn Sie die Zeile my_tuple[0] = 'f' auskommentieren und das Skript ausführen, erhalten Sie einen TypeError, da Tupelobjekte keine Elementzuweisung unterstützen.

python tuple_modification.py

Die Ausgabe ist das ursprüngliche Tupel, wenn die Modifikationszeile auskommentiert ist:

('a', 'b', 'c', 'd', 'e')

Nun wollen wir sehen, wie man ein neues Tupel erstellt, das effektiv eine "modifizierte" Version des Originals darstellt. Dies können wir durch die Kombination von Slicing und Konkatenation (dem +-Operator) erreichen.

Fügen Sie den folgenden Code zu Ihrer tuple_modification.py-Datei hinzu:

## Define a sample tuple
my_tuple = ('a', 'b', 'c', 'd', 'e')

## Create a new tuple by replacing the first element
## We take the new element ('f',) and concatenate it with the rest of the original tuple (from index 1 onwards)
new_tuple = ('f',) + my_tuple[1:]

print("Original tuple:", my_tuple)
print("New tuple after 'modification':", new_tuple)

Speichern Sie die Datei und führen Sie sie aus:

python tuple_modification.py

Die Ausgabe zeigt das ursprüngliche Tupel und das neu erstellte Tupel:

('a', 'b', 'c', 'd', 'e')
Original tuple: ('a', 'b', 'c', 'd', 'e')
New tuple after 'modification': ('f', 'b', 'c', 'd', 'e')

Beachten Sie, dass das ursprüngliche Tupel my_tuple unverändert bleibt. Wir haben ein komplett neues Tupel new_tuple erstellt.

Sie können Elemente auch auf ähnliche Weise "löschen", indem Sie ein neues Tupel erstellen, das die zu entfernenden Elemente ausschließt.

Fügen Sie den folgenden Code zu Ihrer tuple_modification.py-Datei hinzu:

## Define a sample tuple
my_tuple = ('a', 'b', 'c', 'd', 'e')

## Create a new tuple by excluding the element at index 2 ('c')
## We concatenate the part before index 2 with the part after index 3
tuple_after_deletion = my_tuple[:2] + my_tuple[3:]

print("Original tuple:", my_tuple)
print("Tuple after 'deletion':", tuple_after_deletion)

Speichern und führen Sie das Skript aus:

python tuple_modification.py

Die Ausgabe zeigt das ursprüngliche Tupel und das neue Tupel mit dem entfernten Element:

('a', 'b', 'c', 'd', 'e')
Original tuple: ('a', 'b', 'c', 'd', 'e')
New tuple after 'modification': ('f', 'b', 'c', 'd', 'e')
Original tuple: ('a', 'b', 'c', 'd', 'e')
Tuple after 'deletion': ('a', 'b', 'd', 'e')

Dies zeigt, dass Sie, obwohl Tupel unveränderlich sind, effektiv Operationen durchführen können, die Modifikation oder Löschung ähneln, indem Sie neue Tupel mittels Slicing und Konkatenation erstellen.

Tupel-Operatoren und Unpacking erkunden

In diesem Schritt werden Sie einige gängige Operatoren untersuchen, die mit Tupeln verwendet werden können, und etwas über Tupel-Unpacking lernen.

Ähnlich wie bei Zeichenketten und Listen unterstützen Tupel Operatoren wie Konkatenation (+), Wiederholung (*) und Mitgliedschaftsprüfung (in, not in).

Erstellen Sie eine neue Python-Datei namens tuple_operators.py im Verzeichnis ~/project. Fügen Sie den folgenden Code hinzu, um diese Operatoren zu demonstrieren:

## Define two sample tuples
tuple1 = (1, 2, 3)
tuple2 = ('a', 'b', 'c')

## Concatenation using the + operator
combined_tuple = tuple1 + tuple2
print("Concatenated tuple:", combined_tuple)

## Repetition using the * operator
repeated_tuple = tuple1 * 3
print("Repeated tuple:", repeated_tuple)

## Membership testing using 'in' and 'not in'
print("Is 2 in tuple1?", 2 in tuple1)
print("Is 'd' in tuple2?", 'd' in tuple2)
print("Is 5 not in tuple1?", 5 not in tuple1)

Speichern Sie die Datei und führen Sie sie im Terminal aus:

python tuple_operators.py

Sie sehen die Ergebnisse der Operatoroperationen:

Concatenated tuple: (1, 2, 3, 'a', 'b', 'c')
Repeated tuple: (1, 2, 3, 1, 2, 3, 1, 2, 3)
Is 2 in tuple1? True
Is 'd' in tuple2? False
Is 5 not in tuple1? True

Nun betrachten wir das Tupel-Unpacking. Tupel-Unpacking ist eine bequeme Methode, um die Elemente eines Tupels in mehreren Variablen in einer einzigen Anweisung zuzuweisen. Die Anzahl der Variablen auf der linken Seite der Zuweisung muss mit der Anzahl der Elemente im Tupel übereinstimmen.

Fügen Sie den folgenden Code zu Ihrer tuple_operators.py-Datei hinzu:

## Define a tuple
coordinates = (10, 20)

## Unpack the tuple into variables
x, y = coordinates

print("Coordinates:", coordinates)
print("Unpacked x:", x)
print("Unpacked y:", y)

## Another example with more elements
person_info = ("Alice", 30, "New York")
name, age, city = person_info

print("\nPerson Info:", person_info)
print("Unpacked name:", name)
print("Unpacked age:", age)
print("Unpacked city:", city)

Speichern Sie die Datei und führen Sie sie erneut aus:

python tuple_operators.py

Die Ausgabe zeigt die entpackten Werte:

Concatenated tuple: (1, 2, 3, 'a', 'b', 'c')
Repeated tuple: (1, 2, 3, 1, 2, 3, 1, 2, 3)
Is 2 in tuple1? True
Is 'd' in tuple2? False
Is 5 not in tuple1? True

Coordinates: (10, 20)
Unpacked x: 10
Unpacked y: 20

Person Info: ('Alice', 30, 'New York')
Unpacked name: Alice
Unpacked age: 30
Unpacked city: New York

Tupel-Unpacking ist besonders nützlich, wenn man mit Funktionen arbeitet, die mehrere Werte als Tupel zurückgeben.

In diesem Schritt haben Sie gelernt, wie Sie gängige Operatoren mit Tupeln verwenden und wie Sie Tupel-Elemente in einzelne Variablen entpacken.

Gängige Tupel-Funktionen und -Methoden nutzen

In diesem letzten Schritt lernen Sie einige gängige integrierte Funktionen und Tupel-Methoden kennen, die bei der Arbeit mit Tupeln nützlich sind.

Tupel haben einige integrierte Methoden, und mehrere integrierte Funktionen können auf Tupel angewendet werden.

Erstellen Sie eine neue Python-Datei namens tuple_functions.py im Verzeichnis ~/project. Fügen Sie den folgenden Code hinzu, um einige davon zu untersuchen:

## Define a sample tuple
my_tuple = (1, 5, 2, 8, 5, 3, 5, 9)

## Using the count() method to find the number of occurrences of an element
count_of_5 = my_tuple.count(5)
print("Count of 5 in the tuple:", count_of_5)

## Using the index() method to find the index of the first occurrence of an element
## This will raise a ValueError if the element is not found
try:
    index_of_2 = my_tuple.index(2)
    print("Index of 2 in the tuple:", index_of_2)
except ValueError:
    print("Element 2 not found in the tuple.")

try:
    index_of_10 = my_tuple.index(10)
    print("Index of 10 in the tuple:", index_of_10)
except ValueError:
    print("Element 10 not found in the tuple.")

Speichern Sie die Datei und führen Sie sie im Terminal aus:

python tuple_functions.py

Sie sehen die Ausgabe der count()- und index()-Methoden:

Count of 5 in the tuple: 3
Index of 2 in the tuple: 2
Element 10 not found in the tuple.

Nun betrachten wir einige nützliche integrierte Funktionen, die mit Tupeln arbeiten.

Fügen Sie den folgenden Code zu Ihrer tuple_functions.py-Datei hinzu:

## Define a sample tuple of numbers
number_tuple = (10, 5, 20, 15, 30)

## Using the len() function to get the number of elements
tuple_length = len(number_tuple)
print("\nLength of the tuple:", tuple_length)

## Using the max() function to find the maximum element
maximum_value = max(number_tuple)
print("Maximum value in the tuple:", maximum_value)

## Using the min() function to find the minimum element
minimum_value = min(number_tuple)
print("Minimum value in the tuple:", minimum_value)

## Using the sum() function to calculate the sum of elements (for numeric tuples)
total_sum = sum(number_tuple)
print("Sum of elements in the tuple:", total_sum)

## Using the sorted() function to get a sorted list from the tuple
sorted_list = sorted(number_tuple)
print("Sorted list from the tuple:", sorted_list)

Speichern Sie die Datei und führen Sie sie erneut aus:

python tuple_functions.py

Die Ausgabe enthält die Ergebnisse der integrierten Funktionen:

Count of 5 in the tuple: 3
Index of 2 in the tuple: 2
Element 10 not found in the tuple.

Length of the tuple: 5
Maximum value in the tuple: 30
Minimum value in the tuple: 5
Sum of elements in the tuple: 80
Sorted list from the tuple: [5, 10, 15, 20, 30]

Beachten Sie, dass sorted() eine Liste und kein Tupel zurückgibt. Wenn Sie ein sortiertes Tupel benötigen, können Sie das Ergebnis mit tuple(sorted(number_tuple)) zurück in ein Tupel konvertieren.

In diesem Schritt haben Sie einige gängige Tupel-Methoden (count(), index()) und integrierte Funktionen (len(), max(), min(), sum(), sorted()) kennengelernt, die häufig mit Tupeln verwendet werden.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Tupel in Python erstellt, einschließlich leerer Tupel, Tupel mit einem Element (wobei die Notwendigkeit eines nachgestellten Kommas hervorgehoben wird) und Tupel mit mehreren Elementen, sowohl durch Komma-Trennung als auch durch Klammern. Wir haben das Zugreifen auf Tupel-Elemente mittels Indexierung und Slicing geübt und dabei verstanden, dass Tupel geordnet und unveränderlich sind.

Wir haben weiter die Modifikation von Tupeln untersucht, indem wir neue Tupel durch Slicing und Konkatenation erstellt haben, da Tupel selbst nicht direkt geändert werden können. Wir haben auch Tupel-Operatoren wie + für die Konkatenation und * für die Wiederholung betrachtet und das Tupel-Unpacking gelernt, um Elemente einzelnen Variablen zuzuweisen. Schließlich haben wir gängige integrierte Funktionen und Tupel-Methoden genutzt, um Operationen wie das Ermitteln der Länge, das Zählen von Elementen und das Finden des Index eines Elements innerhalb eines Tupels durchzuführen.