IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Importa namedtuple da collections.
  • Crea una namedtuple chiamata SpeciesDetails con nome di tipo SpeciesDetails e campi 'species', 'sex' e 'body_mass'.
  • Crea una lista chiamata labeled_entries.
  • Itera sulla lista weight_log, decomponendola in species, sex e body_mass, crea per ogni voce una nuova istanza della namedtuple SpeciesDetails e aggiungila a labeled_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])
Modifica ed esegui il codice