Python

Python-Namedtuple

Python-Namedtuple

Python bietet viele integrierte Datenstrukturen wie Listen, Wörterbücher und Tupel, um die Daten effizient zu speichern und zu verwalten. Das namedtuple ist der wörterbuchähnliche Container, der im Modul „Sammlungen“ verfügbar ist. Ähnlich wie die Wörterbücher enthält das namedtuple auch die Schlüssel, die Werten zugeordnet sind map. Das namedtuple erlaubt jedoch den Zugriff auf die Werte über Schlüssel und auch über Indizes. Im Vergleich zu den Python-Wörterbüchern ist der Zugriff auf die Werte über Indizes die zusätzliche Funktionalität in namedtuple. Dieser Artikel erklärt das Python-Namedtuple im Detail mit Beispielen.

Auf Werte aus dem namedtuple zugreifen

Auf die Werte im Namedtuple kann wie folgt zugegriffen werden:

  1. Mit den Tasten
  2. Durch die Verwendung der Indizes
  3. Mit der Funktion getattr()

Da das namedtuple das Feld in die Attribute umwandelt, ist es daher einfach mit der Funktion getattr() auf die Werte zuzugreifen.

Beispiele

Sehen wir uns nun einige Beispiele an, um die Erstellung und Funktionsweise von namedtuple zu verstehen. Um das namedtuple zu erstellen und zu verwenden, müssen wir zuerst das Sammlungsmodul importieren. Im folgenden Beispiel wird ein Namedtuple für einen Lehrer erstellt. Die Schlüssel des Namedtuples sind Name, Alter bzw. Abteilung. Der Zugriff auf die Werte erfolgt über Indizes und Schlüssel.

#Importieren des Sammlungsmoduls
Sammlungen importieren
#ein Namedtuple für einen Lehrer erstellen
#Name, Alter und Abteilung sind die Schlüssel
Lehrer = Sammlungen.namedtuple('Lehrer',['Name','Alter','Abteilung'])
# Erstelle einen neuen Lehrer und füge die Werte hinzu
Lehrer_john = Lehrer("John",29,"Informatik")
#Zugriff auf die Lehrerwerte mithilfe von Indizes
print("Zugriff auf Werte über Indizes:")
print("Lehrername ist:",teacher_john[0])
print("Lehrer Alter ist:",teacher_john[1])
print("Lehrerabteilung ist:",teacher_john[2])
#Zugriff auf die Lehrerwerte mit Schlüsseln
print("Zugriff auf Werte mit Tasten:")
print("Lehrername ist:",teacher_john.Name)
print("Lehrer Alter ist:",teacher_john.Alter)
print("Lehrerabteilung ist:",teacher_john.Abteilung)

Ausgabe

Greifen wir nun mit der Funktion getattr() auf die Werte zu. Das namedtuple und der Schlüssel werden als Argument an die Funktion getattr() übergeben.

#Importieren des Sammlungsmoduls
Sammlungen importieren
#ein Namedtuple für einen Lehrer erstellen
#Name, Alter und Abteilung sind die Schlüssel
Lehrer = Sammlungen.namedtuple('Lehrer',['Name','Alter','Abteilung'])
# Erstelle einen neuen Lehrer und füge die Werte hinzu
Lehrer_john = Lehrer("John",29,"Informatik")
#Zugriff auf die Lehrerwerte mit der Funktion getattr()
print(getattr(teacher_john,"name"))
print(getattr(teacher_john,"Alter"))
print(getattr(teacher_john,"abteilung"))

Ausgabe

Beliebte Operationen von namedtuple

Einige beliebte Funktionen konvertieren die anderen Sammlungen wie Listen, Wörterbücher und Tupel in namedtuple und geben die namedtuple-Informationen zurück. Im Folgenden sind die Funktionen aufgeführt, die die anderen Sammlungen in namedtuple konvertieren:-

Die Funktion _make() konvertiert ein iterierbares Objekt wie Liste und Tupel in ein benanntes Tupel named. Die Funktion _asdict() erstellt ein orderDict aus dem namedtuple und gibt es zurück. Schließlich konvertiert der **-Operator ein Wörterbuch in ein Namedtuple. Darüber hinaus sind die Funktionen, die die Namedtuple-Informationen zurückgeben, die folgenden:

Die Funktion _fields() gibt alle Felder des namedtuple zurück, während die Funktion _replace() einen bestimmten Wert durch einen anderen Wert ersetzt.

Implementieren wir die oben genannten Funktionen in unserem Python-Skript, um die verschiedenen Sammlungen in namedtuple zu konvertieren.

#Importieren des Sammlungsmoduls
Sammlungen importieren
#ein Namedtuple für einen Lehrer erstellen
#Name, Alter und Abteilung sind die Schlüssel
Lehrer = Sammlungen.namedtuple('Lehrer',['Name','Alter','Abteilung'])
# Erstelle einen neuen Lehrer und füge die Werte hinzu
Lehrer_john = Lehrer("John",29,"Informatik")
#Liste erstellen
Teacher_list =["Mark",30,"Betriebswirtschaft"]
#Wörterbuch erstellen
Lehrer_dict ='name':'Talor','Alter': 32,'Abteilung':'Wirtschaft'
#mit der Funktion _make() die Liste in namedtuple umzuwandeln
print ("Liste zu Namedtuple Konvertierung:")
drucken (Lehrer._make(lehrer_liste))
#mit der Funktion _asdict() ein OrderDict erstellen
print ("Making the OrderedDict:")
drucken (teacher_john._asdict())
#mit dem ** ein Wörterbuch in ein Namedtuple umwandeln
print ("Konvertieren des Wörterbuchs in namedtuple:")
print(Lehrer(**teacher_dict))

Ausgabe

Lassen Sie uns nun die Funktionen _fields() und _replace() verwenden, um die Informationen der Schlüssel zu erhalten bzw. die Schlüssel zu ersetzen.

#Importieren des Sammlungsmoduls
Sammlungen importieren
#ein Namedtuple für einen Lehrer erstellen
#Name, Alter und Abteilung sind die Schlüssel
Lehrer = Sammlungen.namedtuple('Lehrer',['Name','Alter','Abteilung'])
# Erstelle einen neuen Lehrer und füge die Werte hinzu
Lehrer_john = Lehrer("John",29,"Informatik")
#Verwenden der _fields-Funktion, um die Schlüssel von namedtuple zu erhalten
print("Die Schlüssel von namedtuple sind:")
drucken (Lehrer._Felder)
#mit der _replace-Funktion den Wert ersetzen
print("Der Ersetzungswert von name ist:")
drucken (teacher_john._replace(name = 'Donald'))

Ausgabe
In der Ausgabe ist zu sehen, dass die Funktion _fields die Schlüssel der Informationen zurückgibt und die Funktion _replace() den Namen erfolgreich ersetzt.

Fazit

Das namedtuple ist der wörterbuchähnliche Container, der im Modul „Sammlungen“ vorhanden ist. Es enthält den Schlüssel und ordnet die Werte dem Schlüssel zu. Im Gegensatz zum Python-Wörterbuch kann auf die namedtuples-Werte auch mit den Indizes und der Funktion getattr() zugegriffen werden. Dieser Artikel erklärt kurz das Namedtuple anhand von Beispielen.

Schlacht um Wesnoth 1.13.6 Entwicklung veröffentlicht
Schlacht um Wesnoth 1.13.6, das letzten Monat veröffentlicht wurde, ist die sechste Entwicklungsversion im 1.13.x-Serie und bietet eine Reihe von Verb...
So installieren Sie League of Legends auf Ubuntu 14.04
Wenn Sie ein Fan von League of Legends sind, dann ist dies eine Gelegenheit für Sie, League of Legends zu testen. Beachten Sie, dass LOL von PlayOnLin...
Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...