Tạo namedtuple để lưu trữ dữ liệu
Khi làm việc với dữ liệu, bạn thường dùng dictionary để đặt tên khóa, giúp code dễ đọc và việc truy cập dữ liệu dễ hiểu hơn. Python có một cấu trúc khác gọi là namedtuple: về bản chất là tuple, nhưng mỗi vị trí trong tuple có kèm tên. Bạn tạo nó bằng cách truyền vào tên kiểu tuple và một danh sách các tên trường.
Ví dụ, Cookie = namedtuple("Cookie", ['name', 'quantity']) sẽ tạo một container, và bạn có thể tạo thực thể mới kiểu đó với Cookie('chocolate chip', 1); khi đó bạn truy cập tên bằng thuộc tính name, và lấy số lượng bằng thuộc tính quantity.
Trong bài này, bạn sẽ cấu trúc lại dữ liệu nhật ký cân nặng của chim cánh cụt mà bạn đã làm việc trước đó thành các namedtuple để mã trở nên mô tả, dễ đọc hơn.
Bài tập này là một phần của khóa học
Các kiểu dữ liệu trong Python
Hướng dẫn bài tập
- Import
namedtupletừcollections. - Tạo một namedtuple tên
SpeciesDetailsvới tên kiểu làSpeciesDetailsvà các trường'species','sex', và'body_mass'. - Tạo một danh sách tên
labeled_entries. - Lặp qua danh sách
weight_log, giải nén mỗi phần tử thànhspecies,sex, vàbody_mass, tạo một thực thể namedtuple SpeciesDetails cho mỗi mục và thêm nó vàolabeled_entries.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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])