English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Voice Recognition in Python using Google Speech API

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.

Zugriffsmethoden von NamedTuple verwenden

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.

Beispielcode

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

Umwandlungsprozess von NamedTuple

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.

Beispielcode

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')])

Andere Operationen auf NamedTuple

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.

Beispielcode

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')