Wissensdatenbank von GCSoft

>> Wissensdatenbank / Python 3

Sequenzielle Datentypen - tuple

Oft wird nicht die Flexibilität einer Liste benötigt, sondern nur ihre Fähigkeit, Referenzen auf beliebige Instanzen zu speichern.
Deshalb existiert in Python neben list der Datentyp tuple, der im Gegensatz zu list immutabel ist.

Für tuple-Instanzen steht nur der Grundstock an Operationen für sequenzielle Datentypen bereit.

Erzeugung eines Tupels mit runden Klammrn: a = (1, 2, 3, 4, 5)
Versucht man, ein Tupel mit nur einem Element auf die oben beschriebene Weise zu erzeugen:
kein_tuple = (2)
type(kein_tuple) => <class 'int'>
Stattdessen muss ein Tupel mit nur einem Element ein Komma beinhalten:
ein_tuple = (2,)

Tuple Packing

Es können bei der Erstellung eines Tupels die runden Klammer weggelassen werden, die durch Kommata getrennten Referenzen werden
trotzdem zu einem tuple zusammengefasst (Tuple Packing):
datum = 26, 7, 1987

Tuple Unpacking

Ein Tupel kann auch wieder entpackt werden:
datum = 26, 7, 1987
(tag, monat, jahr) = datum tag => 26

Mithilfe von Tuple Unpacking können auch Werte am Anfang und am Ende einer Sequenz ausgelesen werden:
zahlen = [11, 18, 12, 15, 10]
elf, *andere, zehn = zahlen
elf => 11, andere => [18, 12, 15], zehn => 10
Wird beim Tuple Unpacking einer Referenz ein Stern * vorangestellt, werden in dieser alle übrigen Werte der Sequenz gespeichert.

Veränderbarkeit von tuples

Auch wenn tuple-Instanzen immutable sind, können sich die Werte der enthaltenen Elemente der Erzeugung ändern. Verweist eine
Referenz auf eine Instanz eines mutablen Datentyps, etwa eine Liste, kann sich dessen Wert trotzdem ändern.