CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Importez namedtuple depuis collections.
  • Créez un namedtuple appelé SpeciesDetails avec un nom de type SpeciesDetails et les champs 'species', 'sex' et 'body_mass'.
  • Créez une liste appelée labeled_entries.
  • Parcourez la liste weight_log, en la décompressant dans species, sex et body_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])
Modifier et exécuter le code