데이터 저장용 namedtuple 만들기
데이터를 다룰 때 코드 가독성과 데이터 접근을 쉽게 하려고 딕셔너리를 자주 사용하곤 해요. Python에는 namedtuple이라는 또 다른 컨테이너가 있는데, 튜플이면서도 각 위치에 이름을 붙일 수 있어요. 튜플 타입 이름과 필드 이름 리스트를 전달해 만들 수 있습니다.
예를 들어, Cookie = namedtuple("Cookie", ['name', 'quantity'])는 컨테이너를 만들고, Cookie('chocolate chip', 1)처럼 새 인스턴스를 생성할 수 있어요. 이때 name 속성으로 이름을, quantity 속성으로 수량을 가져올 수 있습니다.
이 연습에서는 지금까지 사용하던 펭귄 체중 로그 데이터를 더 설명적인 코드로 바꾸기 위해 namedtuple 구조로 재구성해 보겠습니다.
이 연습은 강의의 일부입니다
Python의 데이터 타입
연습 안내
collections에서namedtuple을 가져오세요.SpeciesDetails라는 namedtuple을 만들고, 타입 이름은SpeciesDetails, 필드는'species','sex','body_mass'로 지정하세요.labeled_entries라는 리스트를 만드세요.weight_log리스트를 반복하면서 각 항목을species,sex,body_mass로 언패킹한 뒤, 각 항목마다 새로운 SpeciesDetails namedtuple 인스턴스를 만들어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])