Python Tupels meistern: Packing, Unpacking, Vergleich, Slicing und Dictionary-Keys
Tupel-Matching in Python verstehen
Tupel-Matching gruppiert Tupel, indem ein spezifiziertes Element verglichen wird, typischerweise das zweite. Ein gängiges Muster ist die Verwendung eines Dictionaries mit dem Tupel-Element als Schlüssel. Zudem können Sie neue Tupel aus Slices bestehender erstellen.
Tupel-Syntax Grundlagen
Definieren Sie ein Tupel mit kommagetrennten Werten in Klammern:
tup = ('Jan', 'Feb', 'Mar')
Leere Tupel nutzen zwei leere Klammern: tup1 = ().
Für einen einzelnen Wert fügen Sie ein nachgestelltes Komma hinzu: tup1 = (50,). Indizes beginnen bei 0 und Tupel unterstützen Konkatenation und Slicing.
Tupel-Zuweisung
Python erlaubt gleichzeitige Zuweisung mehrerer Variablen mittels eines Tupels. Diese Technik eignet sich hervorragend zum Entpacken strukturierter Daten.
Beispiel:
tup1 = ('Robert', 'Carlos', '1965', 'Terminator 1995', 'Actor', 'Florida')
tup2 = (1, 2, 3, 4, 5, 6, 7)
print(tup1[0]) # Robert
print(tup2[1:4]) # (2, 3, 4)
Packing und Unpacking
„Packing“ fügt Werte in ein neues Tupel ein; „Unpacking“ extrahiert sie zurück in Variablen.
x = ('Guru99', 20, 'Education')
(company, emp, profile) = x
print(company) # Guru99
print(emp) # 20
print(profile) # Education
Tupel vergleichen
Vergleichsoperatoren (<, >, ==, etc.) funktionieren lexikografisch: das erste unterschiedliche Element entscheidet über das Ergebnis.
# Fall 1
a = (5, 6)
b = (1, 4)
if a > b:
print('a ist größer')
else:
print('b ist größer')
Ähnlich bei anderen Fällen: sind die ersten Elemente gleich, wird mit dem nächsten Element verglichen.
Tupel als Dictionary-Keys verwenden
Da Tupel hashbar sind, können sie als Dictionary-Schlüssel dienen, im Gegensatz zu Listen.
directory = {('last', 'first'): '555-1234'}
for last, first in directory:
print(first, last, directory[(last, first)])
Dictionary-Items können als Liste von Schlüssel-Wert-Tupeln abgerufen werden:
a = {'x': 100, 'y': 200}
b = list(a.items())
print(b) # [('x', 100), ('y', 200)]
Tupel löschen
Tupel sind unveränderlich; einzelne Elemente können nicht entfernt werden. Sie können jedoch ein ganzes Tupel-Objekt mit dem del-Statement löschen.
Tupel Slicing
Slice-Syntax funktioniert für Tupel genauso wie für Listen:
x = ('a', 'b', 'c', 'd', 'e')
print(x[2:4]) # ('c', 'd')
Eingebaute Funktionen für Tupel
Tupel arbeiten nahtlos mit Funktionen wie all(), any(), enumerate(), max(), min(), sorted(), len() und tuple().
Vorteile von Tupeln gegenüber Listen
- Iteration über Tupel ist leicht schneller, da sie unveränderlich sind.
- Nur unveränderliche Sequenzen können Dictionary-Keys sein; Tupel passen in diese Rolle.
- Unveränderliche Daten in einem Tupel zu speichern garantiert, dass sie nicht versehentlich geändert werden.
Kurzfassung
- Packing und Unpacking ermöglichen sauberen Datentransfer.
- Tupel können lexikografisch verglichen werden.
- Nutzen Sie Tupel als zusammengesetzte Dictionary-Keys.
- Tupel sind unveränderlich; nutzen Sie
del, um das gesamte Objekt zu entfernen. - Slicing holt Teil-Tupel effizient ab.
Python
- Python-Datentypen meistern: Praxisleitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- Python pass-Statement meistern: Praxisleitfaden
- Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
- Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
- Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
- Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
- Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
- Python Tupels meistern: Packing, Unpacking, Vergleich, Slicing und Dictionary-Keys
- Python Dictionaries: Hinzufügen, Aktualisieren und Verwalten von Key/Value-Paaren