Aan de slagGa gratis aan de slag

Namedtuples maken om data op te slaan

Wanneer je met data werkt, gebruik je vaak een dictionary zodat je sleutelnamen kunt gebruiken om de code leesbaarder te maken en de data makkelijker te benaderen. Python heeft nog een andere container, een namedtuple. Dat is een tuple, maar dan met namen voor elke positie in de tuple. Je maakt er eentje door een naam voor het tupletype en een lijst met veldnamen door te geven.

Bijvoorbeeld, Cookie = namedtuple("Cookie", ['name', 'quantity']) maakt zo’n container. Je kunt er nieuwe van dit type maken met Cookie('chocolate chip', 1), waarna je de naam kunt benaderen via het attribuut name en de hoeveelheid via het attribuut quantity.

In deze oefening ga je de pinguïn-gewichtslogdata waarmee je werkte, omzetten naar namedtuples voor beschrijvendere code.

Deze oefening maakt deel uit van de cursus

Datatypen in Python

Cursus bekijken

Oefeninstructies

  • Importeer namedtuple uit collections.
  • Maak een namedtuple met de naam SpeciesDetails met het type SpeciesDetails en de velden 'species', 'sex' en 'body_mass'.
  • Maak een lijst met de naam labeled_entries.
  • Itereer over de lijst weight_log, pak elk item uit in species, sex en body_mass, maak voor elke entry een nieuwe SpeciesDetails-namedtuple-instantie en voeg die toe aan labeled_entries.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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])
Code bewerken en uitvoeren