Création de namedtuples pour le stockage des données
Souvent, lorsque vous travaillez avec des données, vous utiliserez un dictionnaire afin de pouvoir utiliser des noms de clés
pour faciliter la lecture du code et l'accès aux données. Python
a un autre conteneur appelé namedtuple
qui est un tuple, mais qui dispose de noms pour chaque
position du tuple. Vous en créez un en passant un nom pour le type de tuple et une
liste de noms de champs.
Par exemple, Cookie = namedtuple("Cookie", ['name', 'quantity'])
crée un conteneur, et vous pouvez en créer de nouveaux du même type à l'aide de la fonction Cookie('chocolate chip', 1)
où vous pouvez accéder au nom à l'aide de l'attribut name
, puis obtenir la quantité à l'aide de
l'attribut quantity
.
Dans cet exercice, vous allez restructurer les données du registre des poids des manchots avec lesquelles vous avez travaillé en namedtuples pour un code plus descriptif.
Cet exercice fait partie du cours
Types de données en Python
Instructions
- Importez
namedtuple
à partir decollections
. - Créez un namedtuple nommé
SpeciesDetails
avec un nom de typeSpeciesDetails
et des champs'species'
,'sex'
et'body_mass'
. - Créez une liste appelée
labeled_entries
. - Itérez sur la liste
weight_log
, en la décomposant enspecies
,sex
etbody_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 cet exemple de code.
# 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])