Python: Slicing von Tupeln
PCEP-30-02 3.2 – tuple slicing
Slicing (Teilauswahl von Elementen)
Das Slicing von Tupeln funktioniert in Python auf ähnliche Weise wie bei Listen. Es ermöglicht dir, einen Teil des Tupels auszuwählen, indem du Start-, End- und Schritt-Indizes angibst. Das Ergebnis des Slicings ist immer ein neues Tupel, da Tupel unveränderlich (immutable) sind.
Syntax des Slicings
Die Syntax für das Slicing lautet:
tupel[start:end:step]
Bedeutung der Parameter:
start
: Der Index, an dem das Slicing beginnt (inklusive).end
: Der Index, an dem das Slicing endet (exklusive).step
: Die Schrittweite; gibt an, wie viele Elemente übersprungen werden. Der Standardwert ist1
.
Beispiele für Slicing
1. Grundlegendes Slicing
mein_tupel = (10, 20, 30, 40, 50)
# Elemente von Index 1 (inklusive) bis 4 (exklusive)
print(mein_tupel[1:4]) # Ausgabe: (20, 30, 40)
# Elemente von Index 0 (inklusive) bis 3 (exklusive)
print(mein_tupel[0:3]) # Ausgabe: (10, 20, 30)
2. Slicing mit Standardwerten
Wenn start
, end
oder step
weggelassen wird, gelten Standardwerte:
start
=0
(Anfang des Tupels)end
= Länge des Tupelsstep
=1
mein_tupel = (10, 20, 30, 40, 50)
# Von Anfang bis zum Ende
print(mein_tupel[:]) # Ausgabe: (10, 20, 30, 40, 50)
# Von Index 2 bis zum Ende
print(mein_tupel[2:]) # Ausgabe: (30, 40, 50)
# Vom Anfang bis Index 3 (exklusive)
print(mein_tupel[:3]) # Ausgabe: (10, 20, 30)
3. Slicing mit Schrittweite
Die Schrittweite (step
) wird verwendet, um Elemente in Abständen auszuwählen:
mein_tupel = (10, 20, 30, 40, 50)
# Jedes zweite Element
print(mein_tupel[::2]) # Ausgabe: (10, 30, 50)
# Jedes dritte Element
print(mein_tupel[::3]) # Ausgabe: (10, 40)
4. Negatives Slicing
Du kannst negative Werte für start
, end
oder step
verwenden. Dies ermöglicht das Slicing von hinten nach vorne.
- Negative Indizes: Der letzte Wert hat den Index
-1
, der vorletzte-2
usw. - Negativer Schritt: Damit kannst du Tupel umkehren.
mein_tupel = (10, 20, 30, 40, 50)
# Letzte drei Elemente (negative Indizes)
print(mein_tupel[-3:]) # Ausgabe: (30, 40, 50)
# Tupel umkehren
print(mein_tupel[::-1]) # Ausgabe: (50, 40, 30, 20, 10)
# Von Index -2 bis -5 (Richtung umkehren)
print(mein_tupel[-2:-5:-1]) # Ausgabe: (40, 30, 20)
5. Leere Tupel durch ungültige Indizes
Wenn start
und end
Indizes keine übereinstimmenden Elemente definieren, wird ein leeres Tupel zurückgegeben.
mein_tupel = (10, 20, 30, 40, 50)
# Slicing mit unpassenden Indizes
print(mein_tupel[4:2]) # Ausgabe: () (leeres Tupel)
Zusammenfassung
- Slicing ist eine flexible Methode, um Teile eines Tupels zu extrahieren.
- Standardeinträge (
[start:end:step]
) nutzen:start
: Position, von wo das Extrahieren startet, Standard =0
.end
: Position, bei der das Extrahieren stoppt (exklusive), Standard = Länge des Tupels.step
: Schrittweite, Standard =1
.
- Negative Werte können verwendet werden, um rückwärts zu iterieren oder das Tupel umzukehren.