Verwenden von Namenstuple in Python

Verwenden von Namenstuple in Python
Python verfügt über ein integriertes Modul namens Kollektionen, das verschiedene Klassen und Funktionen als Alternative zu Python -integrierten Datenstrukturen wie DICT, List, Set und Tuple bietet.

In diesem Python -Tutorial wird "NamedTuple, eines der Fabrikfunktionen des Sammlungsmoduls. Wir werden alle wichtigen Konzepte von Python namentuple mit Beispielen und Syntax durchlaufen.

Was wird in Python benannt?

NamedTuple ist eine Funktion des Python -Sammlungsmoduls, einer Erweiterung des Python -Tupel -Datencontainers, mit dem wir mit Namen oder Etiketten auf Elemente in einem Tupel zugreifen können. Wir können eine neue Tuple -Klasse definieren, indem wir namedTuple aus dem Python -Sammlungsmodul importieren und die Fabrikfunktion benamtertuple () verwenden. Kurz gesagt, ein namentlicher Tupel ist eine Kombination aus Python -Tupel- und Diktat -Datentyp.

Python namedTuple Syntax

aus den Sammlungen importieren namedtuple
tuple_name = namedtuple (typeName, field_names, *, umbename = false, defaults = none, module = Keine)

Unter den 6 Attributen von namedTuple () sind nur zwei obligatorisch, Modellname Und fields_name, Der Rest ist optional.

Der Modellname repräsentiert den Namen der Tupel-Unterklasse und wird verwendet, um Tupel-ähnliche Objekte zu erstellen.

Der feild_names Attribut repräsentiert den Labelnamen für die Tupelelemente. Es kann eine Zeichenfolge sein, die durch Leerzeichen "fname lname Dept -Gehalt" oder eine Liste von String ["fname", "lname", "Dept", "Gehalt"] getrennt sein wird.

Erklären Sie einen benannten Tuple in Python

Beginnen wir nun damit, einen benannten Tuple zu deklarieren.

aus den Sammlungen importieren namedtuple
#Deklarieren Sie den benannten Tuple
Mitarbeiter = namedTuple ("Mitarbeiter", ['fname', 'lname', 'Dept', 'Gehalt'])
#addwerte Werte zum genannten Tupel
E1 = Mitarbeiter ('Sam', 'Smith', 'Marketing', 20000)
#Access -Wert mit Etikett
print ("Der Name des Mitarbeiter E1 ist:", E1.fname + "" + e1.lname)
#Access -Wert mit dem Indexwert
print ("Die Abteilung des Mitarbeiter E1 ist:", E1 [2])

Ausgang:

Der Name des Mitarbeiter E1 lautet: Sam Smith
Die Abteilung des Mitarbeiter E1 ist: Marketing

Zugriff auf Elemente aus dem benannten Tuple in Python

Es gibt drei Möglichkeiten, um auf Elemente aus einem benannten Tupel zugreifen zu können:

  • Index (wie ein Tupel)
  • Feldname/Etikettenname (wie ein Wörterbuch)
  • Getattr () -Methode
aus den Sammlungen importieren namedtuple
#Deklarieren Sie den benannten Tuple:
Mitarbeiter = namedTuple ("Mitarbeiter", ['fname', 'lname', 'Dept', 'Gehalt'])
#Werte an das benannte Tupel:
E1 = Mitarbeiter ('Sam', 'Smith', 'Marketing', 20000)
#Accessing -Wert mit dem Indexwert:
print ("Mitarbeiter (mit Index)", E1 [0], E1 [1], E1 [2], E1 [3])
#Akzeptanzwert mit Etikett:
print ("Mitarbeiter (mit Label)", E1.fname, e1.lname, e1.Abteilung E1.Gehalt)
#Accessing -Wert mit GetAttr ():
print ("Mitarbeiter (mit Getattr ())", getattr (e1, 'fname'), getattr (e1, 'lname'), getattr (e1, 'Dept'), Getattr (E1, 'Gehalt'))

Ausgang:

Mitarbeiter (mit Index) Sam Smith Marketing 20000
Mitarbeiter (mit Label) Sam Smith Marketing 20000
Mitarbeiter (mit Getattr ()) Sam Smith Marketing 20000

Arbeiten mit Python namedtuple

Python namedTuples ist unveränderlich
Wie ein normales Tupel sind auch benannte Tubles unveränderlich. Es macht einen Fehler, wenn wir einer vorhandenen Indexnummer oder Etikett einen neuen Wert zuweisen.

Beispiel:

aus den Sammlungen importieren namedtuple
#Deklarieren Sie den benannten Tuple
Mitarbeiter = namedTuple ("Mitarbeiter", ['fname', 'lname', 'Dept', 'Gehalt'])
#addwerte Werte zum genannten Tupel
E1 = Mitarbeiter ('Sam', 'Smith', 'Marketing', 20000)
E1.fname = "John" #Error

Ausgang:

AttributeError: Attribut kann nicht festgelegt werden

Umwandlung eines Python namens Tupel in ein Python -Wörterbuch
Ein benanntes Tupel wird als Wörterbuch behandelt, weil jedes Element des genannten Tupels mit einem Etikett wie in einem Python -Wörterbuch verbunden ist.

Um einen benannten Tupel in ein Wörterbuch umzuwandeln, können wir das verwenden ._asDict () Methode.

Beispiel:

Aus den Sammlungen importieren namedtuple
#Deklarieren Sie den benannten Tuple
Mitarbeiter = namedTuple ("Mitarbeiter", ['fname', 'lname', 'Dept', 'Gehalt'])
#addwerte Werte zum genannten Tupel
E1 = Mitarbeiter ('Sam', 'Smith', 'Marketing', 20000)
Druck (E1._aSdict ())

Ausgang:

'fname': 'sam', 'lname': 'Smith', 'Dept': 'Marketing', 'Gehalt': 20000

Erstellen Sie ein namentliches Objekt aus dem Python -iterablen Objekt
Um ein iterables Objekt wie Tuple, List, Set und Wörterbuch in namedTuple umzuwandeln, können wir die benannten Tuple's verwenden ._make () Methode.

Beispiel:

Aus den Sammlungen importieren namedtuple
#Deklarieren Sie den benannten Tuple
Mitarbeiter = namedTuple ("Mitarbeiter", ['fname', 'lname', 'Dept', 'Gehalt'])
#Liste
E1 = ['Rahul', 'Sharma', 'Marketing', 20000]
#tuple
E2 = ('Ravi', 'Kumar', 'Marketing', 20000)
Druck (Mitarbeiter._make (e1))
Druck (Mitarbeiter._make (e2))

Ausgang:

Mitarbeiter (fname = 'rahul', lname = "sharma", Dept = "Marketing", Gehalt = 20000)
Mitarbeiter (fname = 'ravi', lname = "kumar", Dept = "Marketing", Gehalt = 20000)

Konvertieren Sie ein Python -Wörterbuch in das genannte Tupel
Es gibt zwei Möglichkeiten, ein Python -Wörterbuch in einen Namenstuple umzuwandeln.

Wir können entweder die verwenden ** Operator oder Wörterbuchwerte () Methode.

Beispiel:

Aus den Sammlungen importieren namedtuple
#Deklarieren Sie den benannten Tuple
Mitarbeiter = namedTuple ("Mitarbeiter", ['fname', 'lname', 'Dept', 'Gehalt'])
#Wörterbuch
e1 = 'fname': 'sonia', 'lname': 'Jenner', 'Dept': 'Management', 'Gehalt': 20000
#UseSusing ** Operator
drucken (Mitarbeiter (** e1))
#use ._make () Methode
Druck (Mitarbeiter._make (e1.Werte()))

Ausgang:

Mitarbeiter (fname = 'Sonia', lname = "Jenner", Dept = "Management", Gehalt = 20000)
Mitarbeiter (fname = 'Sonia', lname = "Jenner", Dept = "Management", Gehalt = 20000)

Überprüfen Sie alle Felder von Python namens Tuple
Mit der Eigenschaft _fields können wir alle Felder des genannten Tupels

Beispiel:

Aus den Sammlungen importieren namedtuple
#Deklarieren Sie den benannten Tuple
Mitarbeiter = namedTuple ("Mitarbeiter", ['fname', 'lname', 'Dept', 'Gehalt'])
Druck (Mitarbeiter._fields)

Ausgang:

('fname', 'lname', 'Dept', 'Gehalt')

So ändern Sie den Wert von namedTuple
Ein benannter Tupel ist unveränderlich und wir können seine Attributwerte nach der Deklaration nicht ändern. Das benannte Tupel liefert jedoch die .Ersatz () Methode, die eine Kopie des benannten Tuple mit einem geänderten Attributwert zurückgibt.

Beispiel:

Aus den Sammlungen importieren namedtuple
#Deklarieren Sie den benannten Tuple
Mitarbeiter = namedTuple ("Mitarbeiter", ['fname', 'lname', 'Dept', 'Gehalt'])
#addwerte Werte zum genannten Tupel
E1 = Mitarbeiter ('Sam', 'Smith', 'Marketing', 20000)
Druck (E1._replace (fname = 'John'))

Ausgang:

Mitarbeiter (fname = 'John', lname = "Smith", Dept = "Marketing", Gehalt = 20000)

Abschluss

Um dieses Python -Tutorial abzuschließen, haben wir gelernt, was in Python genannt wird und wie man es deklariert. NamedTuple ist eine Kombination aus Python -Tuple und Python Dictionary, bei der sowohl auf Elemente mit dem Etikett (Schlüssel) als auch der Indexnummern zugegriffen werden. Wir können den benannten Tuple als normalen Python -Tupel -Behälter verwenden, und sie sind nützlich, wenn wir nur mit Tupel Hashing durchführen möchten.