Creare namedtuple per archiviare i dati
Spesso, quando lavori con i dati, utilizzi un dizionario solo per poter usare
nomi di chiave che rendano più semplice leggere il codice e accedere ai dati. Python
ha un altro contenitore chiamato namedtuple, che è una tupla ma con nomi per ciascuna
posizione della tupla. La crei passando un nome per il tipo di tupla e un
elenco di nomi di campo.
Per esempio, Cookie = namedtuple("Cookie", ['name', 'quantity']) creerà
un contenitore, e puoi crearne di nuovi di quel tipo usando Cookie('chocolate chip', 1),
così puoi accedere al nome usando l'attributo name e ottenere la quantità usando
l'attributo quantity.
In questo esercizio ristrutturerai i dati del registro dei pesi dei pinguini con cui hai lavorato in namedtuple, per avere un codice più descrittivo.
Questo esercizio fa parte del corso
Tipi di dati in Python
Istruzioni dell'esercizio
- Importa
namedtupledacollections. - Crea una namedtuple chiamata
SpeciesDetailscon nome di tipoSpeciesDetailse campi'species','sex'e'body_mass'. - Crea una lista chiamata
labeled_entries. - Itera sulla lista
weight_log, decomponendola inspecies,sexebody_mass, crea per ogni voce una nuova istanza della namedtuple SpeciesDetails e aggiungila alabeled_entries.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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])