Créer des namedtuples pour stocker des données
Quand vous travaillez avec des données, vous utilisez souvent un dictionnaire pour pouvoir employer des noms de clés et ainsi rendre le code et l'accès aux données plus faciles à comprendre. Python propose un autre conteneur appelé namedtuple : c'est un tuple, mais chaque position du tuple a un nom. Vous en créez un en fournissant un nom pour le type de tuple et une liste de noms de champs.
Par exemple, Cookie = namedtuple("Cookie", ['name', 'quantity']) va créer un conteneur, et vous pourrez en instancier de nouveaux avec Cookie('chocolate chip', 1), où vous pouvez accéder au nom avec l'attribut name, puis à la quantité avec l'attribut quantity.
Dans cet exercice, vous allez restructurer les données du journal de poids des manchots que vous utilisez depuis le début en des namedtuples afin d'obtenir un code plus descriptif.
Cette activité fait partie du cours
Types de données en Python
Instructions de l’exercice
- Importez
namedtupledepuiscollections. - Créez un namedtuple appelé
SpeciesDetailsavec un nom de typeSpeciesDetailset les champs'species','sex'et'body_mass'. - Créez une liste appelée
labeled_entries. - Parcourez la liste
weight_log, en la décompressant dansspecies,sexetbody_mass, puis créez une nouvelle instance de namedtuple SpeciesDetails pour chaque entrée et ajoutez-la àlabeled_entries.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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])