English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
NamedTuple ist eine weitere Klasse im Modul Collections. Wie Objekte vom Typ Dictionary enthält es Schlüssel und weist Werten zu. In diesem Fall können wir Elemente mit Schlüsseln und Indizes ansprechen.
Zunächst müssen wir es in das Standardmodul Collections importieren.
import collections
In diesem Abschnitt werden wir einige Funktionen der NamedTuple-Klasse sehen.
In NamedTuple können wir Indizes, Schlüssel undgetattr()
Methoden verwendet werden, um Werte abzurufen. Die Attribute von NamedTuple sind sortiert. Auf diese Weise können wir sie mit Indizes ansprechen.
NamedTuple wandelt Feldnamen in Attribute um. Daher könnengetattr()
Daten können von diesem Attribut abgerufen werden.
import collections as col #Erstellen Sie ein employee NamedTuple Employee = col.namedtuple('Employee', ['name', 'city', 'salary']) #Zwei Mitarbeiter hinzufügen e1 = Employee('Asim', 'Delhi', '25000') e2 = Employee('Bibhas', 'Kolkata', '30000') #Zugriff auf die Elemente mit Index print('Der Name und das Gehalt von e1: ' + e1[0] + ' and ' + e1[2]) #Zugriff auf die Elemente mit Attributname print('Der Name und das Gehalt von e2: ' + e2.name + ' and ' + e2.salary) #Zugriff auf die Elemente mit getattr()print('Die Stadt e1 und e2: ' + getattr(e1, 'city') + ' and ' + getattr(e2, 'city'))
Ausgabeergebnis
Der Name und das Gehalt von e1: Asim und 25000 Der Name und das Gehalt von e2: Bibhas und 30000 Die Stadt e1 und e2: Delhi und Kolkata
Es gibt einige Methoden, um andere Sammlungen in NamedTuple umzuwandeln. Die _make()-Methode kann verwendet werden, um iterierbare Objekte (wie Listen, Tupel usw.) in NamedTuple-Objekte umzuwandeln.
Wir können auch Objekte vom Typ Dictionary in NamedTuple-Objekte umwandeln. Für diese Umwandlung benötigen wir**Operator.
NamedTuple kann als OrderedDict-Objekt mit Schlüsseln zurückgegeben werden. Um dies zu erreichen, müssen wir die _asdict()-Methode verwenden.
import collections as col #Erstellen Sie ein employee NamedTuple Employee = col.namedtuple('Employee', ['name', 'city', 'salary']) #Werteliste für Mitarbeiter my_list = ['Asim', 'Delhi', '25000'] e1 = Employee._make(my_list) print(e1) #Dict um in Employee zu konvertieren my_dict = {'name':'Bibhas', 'city' : 'Kolkata', 'salary' : '30000'} e2 = Employee(**my_dict) print(e2) #Zeigen Sie das named tuple als Dictionary an emp_dict = e1._asdict() print(emp_dict)
Ausgabeergebnis
Employee(name='Asim', city='Delhi', salary='25000') Employee(name='Bibhas', city='Kolkata', salary='30000') OrderedDict([('name', 'Asim'), ('city', 'Delhi'), ('salary', '25000')])
Es gibt auch andere Methoden, wie _fields() und _replace(). Mit der _fields() Methode können wir die verschiedenen Felder des NamedTuple überprüfen. Die _replace() Methode wird verwendet, um andere Werte zu ersetzen.
import collections as col #Erstellen Sie ein employee NamedTuple Employee = col.namedtuple('Employee', ['name', 'city', 'salary']) #Fügen Sie einem Mitarbeiter hinzu e1 = Employee('Asim', 'Delhi', '25000') print(e1) print('Die Felder von Employee: ' + str(e1._fields)) #Ersetzen Sie die Stadt des Mitarbeiters e1 e1 = e1._replace(city='Mumbai') print(e1)
Ausgabeergebnis
Employee(name='Asim', city='Delhi', salary='25000') Die Felder von Employee: ('name', 'city', 'salary') Employee(name='Asim', city='Mumbai', salary='25000')