พื้นฐานโปรแกรมมิ่ง EP.5: จัดระเบียบข้อมูลเป็นตู้และสมุดจด เข้าใจ Array (List) และ Object (Dictionary)
ยินดีต้อนรับสู่ EP.5 ของซีรีส์ Zero to Coder ครับ! ใน EP.1 เราได้รู้จักกับตัวแปรที่เก็บข้อมูลทีละ 1 ค่า เช่น name = "สมชาย" หรือ price = 100
แต่ในโลกแห่งความเป็นจริง ข้อมูลมักไม่ได้มาเดี่ยวๆ ครับ ลองคิดถึง “รายชื่อเพื่อน 500 คนใน Facebook” หรือ “รายการสินค้า 20 ชิ้นในตะกร้า Shopee” ถ้าเราต้องสร้างตัวแปรแยกทีละตัวเป็น item1, item2, …, item20 คงเหนื่อยจนถอดใจแน่นอน!
นั่นจึงเป็นที่มาของ โครงสร้างข้อมูลพื้นฐาน (Data Structures) 2 ชนิดที่ครองโลกโปรแกรมมิ่ง ได้แก่ Array (หรือ List) และ Object (หรือ Dictionary) ครับ
1. Array / List: แถวตู้ล็อกเกอร์เรียงตามลำดับ (Index)
ให้นึกภาพตู้ล็อกเกอร์ยาวเหยียดที่ตั้งเรียงกันตามลำดับ ทุกช่องจะมี “หมายเลขช่อง (Index)” กำกับไว้เสมอ
# สร้าง List รายการผลไม้ (ใน Python ใช้ก้ามปู [ ])
fruits = ["แอปเปิ้ล", "กล้วย", "ส้ม", "มะม่วง"]
# การดึงข้อมูลออกมาใช้:
print(fruits[0]) # ได้ "แอปเปิ้ล"
print(fruits[1]) # ได้ "กล้วย"
🚨 กฎเหล็กของโปรแกรมเมอร์: คอมพิวเตอร์เริ่มนับจาก 0 (Zero-based Index)
คนทั่วไปนับของชิ้นแรกว่า “1” แต่ในโลกโปรแกรมมิ่ง ตำแหน่งแรกสุดคือตำแหน่งที่ 0 (Index 0) เสมอ! ดังนั้น ถ้ามีผลไม้ 4 ชิ้น ลำดับดัชนีจะเป็น 0, 1, 2, 3 จำจุดนี้ให้แม่นยำ เพราะนี่คือข้อผิดพลาดคลาสสิกที่ทำให้เกิด Error ประเภท “Index Out of Range” ครับ
2. Object / Dictionary: สมุดบันทึกแบบคู่ Key-Value
ถ้า List คือการจำของตามตำแหน่งตัวเลข Dictionary (หรือ Object ใน JavaScript) คือการจำของตาม “ป้ายกำกับ (Key)” เหมือนพจนานุกรม หรือบัตรประชาชนของเรา:
# สร้าง Dictionary ข้อมูลผู้ใช้ (ใช้ปีกกา { } และคั่นด้วยเครื่องหมาย :)
user_profile = {
"name": "สมพงษ์",
"age": 28,
"email": "sompong@email.com",
"is_premium": True
}
# เข้าถึงข้อมูลด้วยการเรียก "ชื่อ Key":
print(user_profile["name"]) # ได้ "สมพงษ์"
print(user_profile["email"]) # ได้ "sompong@email.com"
ข้อดีของ Dictionary คือ เราไม่ต้องสนใจลำดับก่อนหลัง เราอยากได้อายุ ก็แค่ระบุคีย์ "age" ตรงๆ เข้าใจง่ายและเป็นมิตรกับมนุษย์มาก
3. พลังผสาน: List of Objects (รากฐานของ JSON ทั่วโลก)
เมื่อนำ List และ Dictionary มารวมร่างกัน เราจะได้โครงสร้างข้อมูลจำลองระบบจริง เช่น “รายการสินค้าในตะกร้าช้อปปิ้ง”:
shopping_cart = [
{"product_name": "คีย์บอร์ดกลไก", "price": 2500, "qty": 1},
{"product_name": "เมาส์ไร้สาย", "price": 1200, "qty": 2},
{"product_name": "แผ่นรองเมาส์", "price": 350, "qty": 1}
]
# ใช้ for loop วนคำนวณราคารวมทั้งหมด:
total_bill = 0
for item in shopping_cart:
total_bill += item["price"] * item["qty"]
print("💰 ยอดเงินรวมทั้งสิ้น:", total_bill, "บาท")
โครงสร้างแบบนี้แหละครับที่เรียกว่า JSON (JavaScript Object Notation) ซึ่งเป็นรูปแบบมาตรฐานที่แอปพลิเคชันอย่าง TikTok, Facebook, Google และระบบธนาคารใช้ในการส่งข้อมูลข้ามอินเทอร์เน็ตหากันในทุกวินาที!
🎯 มินิชาเลนจ์ประจำตอน: ออกแบบข้อมูลเพลงใน Spotify
ถ้าคุณเป็นคนออกแบบฐานข้อมูลของแอปฟังเพลง ลองออกแบบ Dictionary สำหรับเพลง 1 เพลง โดยต้องมีข้อมูล: ชื่อเพลง, ชื่อศิลปิน, ความยาวเพลง (วินาที) และจำนวนครั้งที่เปิดฟัง
สรุปภาพรวม EP.5
การเข้าใจ List (ข้อมูลเป็นแถวเรียงเบอร์) และ Dictionary (ข้อมูลแบบระบุชื่อคีย์) คือกุญแจสำคัญที่ปลดล็อกให้คุณสามารถจัดการข้อมูลระดับ Big Data หรือข้อมูลผู้ใช้งานในระบบจริงได้อย่างเป็นระเบียบ
แต่ยิ่งระบบโตขึ้น โค้ดก็ย่อมมีโอกาสผิดพลาด! ในตอนถัดไป EP.6 เราจะพาไปสวมบทนักสืบเพื่อรับมือกับสิ่งที่โปรแกรมเมอร์ทุกคนต้องเจอ นั่นคือ Bug และ Error (ศิลปะการ Debug) คลิกอ่านต่อด้านล่างได้เลยครับ!
📚 ไม่พลาดทุกบทเรียนในซีรีส์ Zero to Coder
เรียนรู้พื้นฐานการเขียนโปรแกรมทีละสเต็ป พร้อมตัวอย่างที่นำไปใช้ได้จริงกับทุกภาษาคอมพิวเตอร์