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

Reconocimiento de voz en Python usando Google Speech API

NamedTuple es otro tipo en el módulo collections. Al igual que los objetos de tipo diccionario, contiene claves y se mapean a ciertos valores. En este caso, podemos acceder a los elementos usando claves e índices.

Primero, necesitamos importarlo del módulo estándar de conjuntos.

import collections

En esta sección, veremos algunas características del tipo NamedTuple.

Métodos de acceso de NamedTuple

En NamedTuple, podemos usar índices, claves ygetattr()métodos para acceder a los valores. Los valores de las propiedades de NamedTuple son ordenados. De esta manera, podemos acceder a ellos usando índices.

NamedTuple convierte los nombres de los campos en propiedades. Por lo tanto, se usagetattr()Se puede obtener datos de esta propiedad.

Ejemplo de código

import collections as col
#Crear un NamedTuple de empleado
Employee = col.namedtuple('Employee', ['name', 'city', 'salary'])
#Agregar dos empleados
e1 = Employee('Asim', 'Delhi', '25000')
e2 = Empleado('Bibhas', 'Kolkata', '''30000')
#Acceder a los elementos usando índice
print('El nombre y salario de e1: '' + e1[0] + '' y '' + e1[2])
#Acceder a los elementos usando el nombre del atributo
print('El nombre y salario de e2: '' + e2.nombre + '' y '' + e2.salario)
#Acceder a los elementos usando getattr()print('La Ciudad de e1 y e2: '' + getattr(e1, 'ciudad') + '' y '' + getattr(e2, 'ciudad'))

Resultados de salida

El nombre y salario de e1: Asim y 25000
El nombre y salario de e2: Bibhas y 30000
La Ciudad de e1 y e2: Delhi y Kolkata

Proceso de conversión de NamedTuple

Hay algunos métodos para convertir otros conjuntos en NamedTuple. El método _make() se puede usar para convertir objetos iterables (como listas, tuplas, etc.) en objetos NamedTuple.

También podemos convertir objetos de tipo diccionario en objetos NamedTuple. Para esta conversión, necesitamos**Operadores.

NamedTuple puede usar claves para devolver valores del tipo OrderedDict. Para que sea OrderedDict, debemos usar el método _asdict().

Ejemplo de código

import collections as col
#Crear un NamedTuple de empleado
Employee = col.namedtuple('Employee', ['name', 'city', 'salary'])
#Lista de valores para Empleado
my_list = ['Asim', 'Delhi', '}}25000']
e1 = Employee._make(my_list)
print(e1)
#Diccionario para convertir Employee
my_dict = {'name':'Bibhas', 'city' : 'Kolkata', 'salary' : '30000'}
e2 = Employee(**my_dict)
print(e2)
#Mostrar la tupla nombrada como diccionario
emp_dict = e1._asdict()
print(emp_dict)

Resultados de salida

Employee(name='Asim', city='Delhi', salary='25000')
Employee(name='Bibhas', city='Kolkata', salary='30000')
OrderedDict([('name', 'Asim'), ('city', 'Delhi'), ('salary', '25000')])

Algunas otras operaciones en NamedTuple

Hay otras algunas métodos, como _fields() y _replace(). El método _fields() nos permite verificar los diferentes campos de NamedTuple. El método _replace() se utiliza para reemplazar otros valores.

Ejemplo de código

import collections as col
#Crear un NamedTuple de empleado
Employee = col.namedtuple('Employee', ['name', 'city', 'salary'])
#Agregar un empleado
e1 = Employee('Asim', 'Delhi', '25000')
print(e1)
print('Los campos de Employee: ' + str(e1._fields))
#Reemplazar la ciudad del empleado e1
e1 = e1._replace(city='Mumbai')
print(e1)

Resultados de salida

Employee(name='Asim', city='Delhi', salary='25000')
Los campos de Employee: ('name', 'city', 'salary')
Employee(name='Asim', city='Mumbai', salary='25000')