การสร้าง namedtuple สำหรับจัดเก็บข้อมูล
ในการทำงานกับข้อมูล เรามักใช้ dictionary เพื่อให้สามารถอ้างอิงข้อมูลด้วยชื่อ key ทำให้โค้ดอ่านง่ายและเข้าถึงข้อมูลได้สะดวกขึ้น Python มี container อีกประเภทหนึ่งเรียกว่า namedtuple ซึ่งเป็น tuple ที่มีชื่อกำกับแต่ละตำแหน่ง วิธีสร้างคือส่งชื่อสำหรับประเภทของ tuple และ list ของชื่อฟิลด์เข้าไป
ตัวอย่างเช่น Cookie = namedtuple("Cookie", ['name', 'quantity']) จะสร้าง container ขึ้นมา และสามารถสร้าง instance ใหม่ได้ด้วย Cookie('chocolate chip', 1) จากนั้นเข้าถึงชื่อได้ผ่าน attribute name และดูจำนวนได้ผ่าน attribute quantity
ในแบบฝึกหัดนี้ จะได้ปรับโครงสร้างข้อมูลบันทึกน้ำหนักเพนกวินที่ใช้งานอยู่ให้อยู่ในรูป namedtuple เพื่อให้โค้ดอ่านเข้าใจได้ง่ายยิ่งขึ้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ประเภทข้อมูลใน Python
คำแนะนำการฝึกหัด
- Import
namedtupleจากcollections - สร้าง namedtuple ชื่อ
SpeciesDetailsโดยกำหนด type name เป็นSpeciesDetailsและฟิลด์เป็น'species','sex', และ'body_mass' - สร้าง list ชื่อ
labeled_entries - วนซ้ำใน list
weight_logโดย unpack แต่ละรายการออกเป็นspecies,sex, และbody_massจากนั้นสร้าง instance ใหม่ของ SpeciesDetails namedtuple สำหรับแต่ละรายการ แล้ว append เข้าไปใน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])