Pitón

Python Namedtuple

Python Namedtuple

Python presenta muchas estructuras de datos integradas como listas, diccionarios y tuplas para almacenar y administrar los datos de manera eficiente. El namedtuple es el contenedor similar a un diccionario disponible en el módulo "colecciones". Similar a los diccionarios, el namedtuple también contiene las claves que se asignan a los valores. Sin embargo, el namedtuple permite acceder a los valores a través de claves y también a través de índices. En comparación con los diccionarios de Python, acceder a los valores a través de índices es la funcionalidad adicional en namedtuple. Este artículo explica el nombre de Python en detalle con ejemplos.

Accediendo a los valores de la tupla con nombre

Se puede acceder a los valores dentro de la tupla con nombre de las siguientes maneras:

  1. Usando las llaves
  2. Usando los índices
  3. Usando la función getattr ()

Como la tupla con nombre convierte el campo en los atributos, es fácil acceder a los valores usando la función getattr ().

Ejemplos de

Ahora veamos algunos ejemplos para comprender la creación y el funcionamiento de namedtuple. Para crear y usar el namedtuple, primero, necesitamos importar el módulo de colecciones. En el ejemplo que se muestra a continuación, se crea una tupla con nombre para un maestro. Las claves de la tupla con nombre son nombre, edad y departamento, respectivamente. Se accede a los valores mediante índices y claves.

#importar el módulo de colecciones
importar colecciones
#creando una tupla con nombre para un maestro
#nombre, edad y departamento son las claves
Profesor = colecciones.namedtuple ('Profesor', ['nombre', 'edad', 'departamento'])
# crear un nuevo maestro y agregar los valores
teacher_john = Profesor ("John", 29, "Ciencias de la computación")
#accediendo a los valores del profesor usando índices
print ("Accediendo a valores usando índices:")
print ("El nombre del profesor es:", teacher_john [0])
print ("La edad del maestro es:", teacher_john [1])
print ("El departamento de profesores es:", teacher_john [2])
#accediendo a los valores del profesor usando claves
print ("Accediendo a valores usando claves:")
print ("El nombre del profesor es:", teacher_john.nombre)
print ("La edad del maestro es:", teacher_john.edad)
print ("El departamento de profesores es:", teacher_john.Departamento)

Producción

Ahora accedamos a los valores usando la función getattr (). La tupla con nombre y la clave se pasan como un argumento a la función getattr ().

#importar el módulo de colecciones
importar colecciones
#creando una tupla con nombre para un maestro
#nombre, edad y departamento son las claves
Profesor = colecciones.namedtuple ('Profesor', ['nombre', 'edad', 'departamento'])
# crear un nuevo maestro y agregar los valores
teacher_john = Profesor ("John", 29, "Ciencias de la computación")
#accediendo a los valores del profesor usando la función getattr ()
print (getattr (teacher_john, "nombre"))
print (getattr (teacher_john, "edad"))
print (getattr (teacher_john, "departamento"))

Producción

Operaciones populares de namedtuple

Algunas funciones populares convierten las otras colecciones como listas, diccionarios y tuplas en namedtuple y devuelven la información de namedtuple. A continuación se muestran las funciones que convierten las otras colecciones en namedtuple:-

La función _make () convierte un objeto iterable como list y tuple en un namedtuple. La función _asdict () crea un orderDict a partir del namedtuple y lo devuelve. Por último, el operador ** convierte un diccionario en una tupla con nombre. Además, las funciones que devuelven la información de la tupla con nombre son las siguientes:

La función _fields () devuelve todos los campos de la tupla con nombre, mientras que la función _replace () reemplaza un valor particular con otro valor.

Implementemos las funciones como se mencionó anteriormente en nuestro script de Python para convertir las diferentes colecciones en namedtuple.

#importar el módulo de colecciones
importar colecciones
#creando una tupla con nombre para un maestro
#nombre, edad y departamento son las claves
Profesor = colecciones.namedtuple ('Profesor', ['nombre', 'edad', 'departamento'])
# crear un nuevo maestro y agregar los valores
teacher_john = Profesor ("John", 29, "Ciencias de la computación")
#creando una lista
teacher_list = ["Mark", 30, "Administración de empresas"]
#creando un diccionario
teacher_dict = 'nombre': 'Talor', 'edad': 32, 'departamento': 'Economía'
#usando la función _make () para convertir la lista a namedtuple
print ("Conversión de lista a tupla con nombre:")
imprimir (Maestro._make (lista_de_profesores))
#utilizando la función _asdict () para hacer un OrderDict
print ("Haciendo el OrderedDict:")
imprimir (teacher_john._asdict ())
#utilizando ** para convertir un diccionario en una tupla con nombre
print ("Convertir el diccionario en namedtuple:")
imprimir (Profesor (** teacher_dict))

Producción

Ahora usemos las funciones _fields () y _replace () para obtener la información de las claves y reemplazar las claves, respectivamente.

#importar el módulo de colecciones
importar colecciones
#creando una tupla con nombre para un maestro
#nombre, edad y departamento son las claves
Profesor = colecciones.namedtuple ('Profesor', ['nombre', 'edad', 'departamento'])
# crear un nuevo maestro y agregar los valores
teacher_john = Profesor ("John", 29, "Ciencias de la computación")
#utilizando la función _fields para obtener las claves de namedtuple
print ("Las claves de namedtuple son:")
imprimir (Maestro._campos)
#utilizando la función _replace para reemplazar el valor
print ("El valor de reemplazo del nombre es:")
imprimir (teacher_john._replace (nombre = 'Donald'))

Producción
En la salida, se puede ver que la función _fields devuelve las claves de información, y la función _replace () reemplaza el nombre con éxito.

Conclusión

El namedtuple es el contenedor similar a un diccionario presente en el módulo "colecciones". Contiene la clave y asigna los valores a la clave. A diferencia del diccionario de Python, también se puede acceder a los valores de namedtuples usando la función indexes y getattr (). Este artículo explica brevemente la tupla con nombre a través de ejemplos.

OpenTTD frente a Simutrans
Crear su propia simulación de transporte puede ser divertido, relajante y extremadamente atractivo. Es por eso que debes asegurarte de probar tantos j...
Tutorial de OpenTTD
OpenTTD es uno de los juegos de simulación empresarial más populares que existen. En este juego, necesitas crear un maravilloso negocio de transporte....
SuperTuxKart para Linux
SuperTuxKart es un gran título diseñado para ofrecerte la experiencia Mario Kart de forma gratuita en tu sistema Linux. Es bastante desafiante y diver...