Створення namedtuple для зберігання даних
Під час роботи з даними ви часто використовуєте словник, щоб мати ключі з назвами — так зручніше читати код і звертатися до даних. У Python є ще один контейнер — namedtuple. Це кортеж, у якого є імена для кожної позиції. Його створюють, передаючи назву типу кортежу та список назв полів.
Наприклад, Cookie = namedtuple("Cookie", ['name', 'quantity']) створить контейнер, і ви зможете створювати нові об'єкти цього типу за допомогою Cookie('chocolate chip', 1), де до назви можна звернутися через атрибут name, а кількість отримати через атрибут quantity.
У цій вправі ви перетворите журнал ваг пінгвінів, з яким працювали раніше, на namedtuple, щоб зробити код більш описовим.
Ця вправа є частиною курсу
Типи даних у Python
Інструкції до вправи
- Імпортуйте
namedtupleзcollections. - Створіть namedtuple під назвою
SpeciesDetailsз іменем типуSpeciesDetailsі полями'species','sex'та'body_mass'. - Створіть список під назвою
labeled_entries. - Пройдіться по списку
weight_log, розпаковуючи його наspecies,sexіbody_mass, для кожного запису створюйте новий екземпляр namedtuple SpeciesDetails і додавайте його доlabeled_entries.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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])