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