Crear tuplas con nombre para almacenar datos
A menudo, cuando trabajas con datos, utilizarás un diccionario solo para poder utilizar
nombres de las claves para facilitar la lectura del código y el acceso a los datos. Python
tiene otro contenedor llamado namedtuple
que es una tupla, pero tiene nombres para cada
posición de la tupla. Creas una pasando un nombre para el tipo de tupla y una
lista de nombres de campo.
Por ejemplo, Cookie = namedtuple("Cookie", ['name', 'quantity'])
creará un contenedor, y puedes crear otros nuevos del mismo tipo utilizando Cookie('chocolate chip', 1)
donde puedes acceder al nombre utilizando el atributo name
, y luego obtener la cantidad utilizando
el atributo quantity
.
En este ejercicio, vas a reestructurar los datos del registro del peso de los pingüinos con los que has estado trabajando en namedtuples para obtener un código más descriptivo.
Este ejercicio forma parte del curso
Tipos de datos en Python
Instrucciones del ejercicio
- Importa
namedtuple
desdecollections
. - Crea una tupla con nombre llamada
SpeciesDetails
con un nombre de tipoSpeciesDetails
y campos'species'
,'sex'
y'body_mass'
. - Crea una lista llamada
labeled_entries
. - Recorre la lista
weight_log
, descomprimiéndola enspecies
,sex
, ybody_mass
, y crea una nueva instancia de namedtuple SpeciesDetails para cada entrada y añádela alabeled_entries
.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Import namedtuple from collections
from collections import ____
# Create the namedtuple: SpeciesDetails
SpeciesDetails = ____(____, ['species', 'sex', 'body_mass'])
# Create the empty list: labeled_entries
labeled_entries = []
# Iterate over the weight_log entries
for ____, ____, ____ in ____:
# Append a new SpeciesDetails namedtuple instance for each entry to labeled_entries
____
print(labeled_entries[:5])