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:
- Usando las llaves
- Usando los índices
- 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 coleccionesimportar 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 coleccionesimportar 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:-
- _fabricar()
- _asdict ()
- ** operador
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:
- _campos
- _reemplazar()
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 coleccionesimportar 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 coleccionesimportar 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.