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: Wiesbaden
Wie sieht dies nun bei Verwendung eines namedtuple
aus? Zunächst muss dieser Typ vom Modul collections
importiert werden:
from collections import namedtuple
Dann 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)
6295017
Auf ein Element kann auch über den Index zugegriffen werden:
>>> print(hessen[0])
Wiesbaden
Und selbstverständlich funktioniert auch das Unpacking:
>>> capitol, population = hessen
>>> print(capital)
Wiesbaden
>>> print(population)
6295017
Auß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