Um Tuples ging es bereits in einem älteren Blogbeitrag. Nun folgt der Datentyp namedtuple aus dem Modul collections.
Dieser Data Class Builder ist seit Version 2.6 Bestandteil von Python. Er ist nicht zu verwechseln mit NamedTuple aus dem Modul typing, der in Python 3.6 eingeführt wurde.
Als Ausgangspunkt soll folgendes Tuple-Beispiel dienen:
>>> hessen = ("Wiesbaden", 278342)Bei „hessen“ handelt es sich um ein Tuple, wie sich mit type beweisen lässt:
>>> type(hessen)
<class 'tuple'>Die Elemente dieses Tuples könnten den Variablen capitol und population zugewiesen werden (tuple unpacking):
>>> capitol, population = hessen
>>> print(f"Hauptstadt von Hessen: {capital}")
Hauptstadt von Hessen: WiesbadenWie sieht dies nun bei Verwendung eines namedtuple aus? Zunächst muss dieser Typ vom Modul collections importiert werden:
from collections import namedtupleDann könnte ein neuer Datentyp „Hessen“ wie folgt erstellt werden:
Hessen = namedtuple("Hessen", ["capital", "population"])Wie Ihr sehen könnt, wird innerhalb der geschweiften Klammern zunächst der Name angegeben, danach folgen die Bezeichnungen der enthaltenen Elemente (hier: capitol und population). Jetzt lässt sich ein Namedtuple-Objekt erzeugen:
>>> hessen = Hessen("Wiesbaden", 6_295_017)
>>> print(hessen.capital)
Wiesbaden
>>> print(hessen.population)
6295017Auf ein Element kann auch über den Index zugegriffen werden:
>>> print(hessen[0])
WiesbadenUnd selbstverständlich funktioniert auch das Unpacking:
>>> capitol, population = hessen
>>> print(capital)
Wiesbaden
>>> print(population)
6295017Außerdem haben Namedtuple von Haus aus eine string representation an Bord, so dass sich die Werte ausgeben lassen:
>>> hessen
Hessen(capital='Wiesbaden', population=6295017)Zuletzt aktualisiert am 11. November 2022