12.1 Indexbereiche
Der Code zum Erhalten eines Tupelausschnitts sieht genauso aus wie für eine Teilliste. In dieser Hinsicht ähneln sich Tupel sehr. Ich möchte das Material nicht duplizieren, aber Wiederholung ist die Mutter des Lernens…
Das Erhalten von Ausschnitten, oder slicing, ermöglicht es dir, Teile eines Tupels zu extrahieren, um neue Tupel zu erstellen. Dieser Prozess ist besonders nützlich, wenn du mit bestimmten Datensegmenten arbeiten musst, die in einem Tupel gespeichert sind.
Slicing-Syntax
Slices werden mit eckigen Klammern erstellt, in denen die Start- und Endindices durch ein Doppelpunkt getrennt angegeben werden. Wenn der Startindex nicht angegeben ist, beginnt der Slice mit dem ersten Element; wenn der Endindex nicht angegeben ist, geht der Slice bis zum Ende des Tupels.
Einen Tupelslice erhältst du mit der Syntax tuple[start:stop:step], wobei:
-
start— der Startindex des Elements (einschließlich); -
stop— der Endindex des Elements (ausschließlich); -
step— der Schritt, mit dem die Elemente ausgewählt werden.
Beispiele:
my_tuple = (0, 1, 2, 3, 4, 5)
sub_tuple = my_tuple[1:4] # Erhalten eines Tupelausschnitts mit Elementen von Index 1 bis 3
print(sub_tuple) # Gibt (1, 2, 3)
sub_tuple_with_step = my_tuple[0:6:2] # Erhalten jedes zweiten Elements von 0 bis 5
print(sub_tuple_with_step) # Gibt (0, 2, 4)
Wenn start nicht angegeben ist, ist er standardmäßig 0, und wenn stop nicht angegeben ist, ist er len(tuple). Der Parameter step ist standardmäßig 1.
Beispiele:
# Erstellen eines Tupels mit Elementen von 0 bis 5
my_tuple = (0, 1, 2, 3, 4, 5)
# Erstellen eines neuen Tupels, beginnend mit dem zweiten Element des ursprünglichen Tupels
sub_tuple = my_tuple[1:]
print(sub_tuple) # Ausgabe: (1, 2, 3, 4, 5)
# Erstellen eines neuen Tupels, das Elemente vom Anfang bis zum vierten Element
# (Index 4) des ursprünglichen Tupels mit Schritt 1 (standardmäßig) enthält
sub_tuple_with_step = my_tuple[:5]
print(sub_tuple_with_step) # Ausgabe: (0, 1, 2, 3, 4)
12.2 Negative Indizes
Negative Indizes in Python beginnen bei -1, was dem letzten Element der Liste (oder des Tupels) entspricht. -2 wird auf das vorletzte Element verweisen und so weiter. Die Verwendung negativer Indizes vereinfacht den Zugriff auf Elemente vom Ende des Tupels, ohne ihre Position vom Anfang her ermitteln zu müssen.
Anwendungsbeispiele
Lass uns die Verwendung negativer Indizes zum Erstellen eines Slices betrachten. Angenommen, wir haben ein Tupel mit Werten:
my_tuple = (10, 20, 30, 40, 50, 60, 70, 80)
Um ein Tupel mit Elementen vom Ende bis zur Mitte des Tupels zu erhalten, können wir negative Indizes verwenden.
sub_tuple = my_tuple[-3:-1]
print(sub_tuple) # Gibt (60, 70)
So wählt my_tuple[-3:-1] die Elemente mit den Indizes -3 (drittes von hinten) bis -1 (ohne das letzte), was uns das Tupel (60, 70) gibt.
Das letzte Element eines Tupels erhalten:
my_tuple = (10, 20, 30, 40, 50)
last_element = my_tuple[-1]
print(last_element) # Gibt 50
Hier wird my_tuple[-1] immer das letzte Element des Tupels zurückgeben, was sehr praktisch ist, wenn die genaue Anzahl der Elemente im Tupel unbekannt ist.
Umkehren der Reihenfolge der Tupel-Elemente:
my_tuple = (10, 20, 30, 40, 50)
reversed_tuple = my_tuple[::-1]
print(reversed_tuple) # Gibt (50, 40, 30, 20, 10)
Die Verwendung des Slices [::-1] ermöglicht es, die Reihenfolge der Elemente im Tupel einfach und effektiv umzukehren, wodurch ein neues Tupel mit den Elementen in umgekehrter Reihenfolge entsteht.
12.3 Ist ein Element im Tupel?
Das Überprüfen, ob ein Element in einem Tupel vorhanden ist, ist eine Standardoperation, um festzustellen, ob sich ein Element im Tupel befindet. Dies geschieht mit dem operator in, der True zurückgibt, wenn das Element im Tupel vorhanden ist, und False ansonsten.
Verwendung des Operators in
Der Operator in ist eine einfache und intuitive Möglichkeit, um die Anwesenheit eines Elements zu überprüfen:
my_tuple = (1, 2, 3, 4, 5)
element = 3
if element in my_tuple:
print(f"{element} is in the tuple.")
else:
print(f"{element} is not in the tuple.")
Überprüfen, dass ein Element fehlt:
Wenn du sicherstellen möchtest, dass ein Element im Tupel fehlt, verwende einfach die Konstruktion not in:
names = ('Alice', 'Bob', 'Charlie')
search_name = 'Alice'
if search_name not in names:
print(f"{search_name} ist nicht im Tupel.")
else:
print(f"{search_name} ist im Tupel.")
Es unterscheidet sich fast nicht von der Arbeit mit Listen – darin liegt die Universalität und Einfachheit von Python.
GO TO FULL VERSION