ในการเขียนโปรแกรมจริง ข้อมูลมักจะมาเป็นชุดๆ ครับ เช่น รายชื่อสมาชิก, ราคาสินค้าในตะกร้า หรือข้อมูลโปรไฟล์ผู้ใช้ Python จึงเตรียม "ตู้คอนเทนเนอร์" ไว้ให้เราเลือกใช้ 4 รูปแบบหลัก ตามความเหมาะสมของงานครับ
1. List (รายการ) - ยืดหยุ่นที่สุด
List คือการเก็บข้อมูลเรียงต่อกันเป็นแถว นิยมใช้มากที่สุด เพราะเราสามารถเพิ่ม ลด หรือแก้ไขข้อมูลข้างในได้ตลอดเวลา
- สัญลักษณ์: ใช้เครื่องหมายก้ามปู
[ ] - จุดเด่น: เก็บข้อมูลซ้ำได้ และรักษาลำดับก่อน-หลัง (Ordered)
fruits = ["Apple", "Banana", "Cherry"]
fruits.append("Orange") # เพิ่มข้อมูล
fruits[0] = "Strawberry" # แก้ไขตัวแรก (Index เริ่มที่ 0)
print(fruits) # Output: ['Strawberry', 'Banana', 'Cherry', 'Orange']
2. Tuple (ทัพเพิล) - ข้อมูลที่ห้ามแตะ!
Tuple คล้ายกับ List มากครับ แต่มีกฎเหล็กคือ "สร้างแล้วห้ามแก้ไข" (Immutable) เหมาะสำหรับเก็บข้อมูลที่ต้องการความปลอดภัย เช่น ค่าพิกัดทางภูมิศาสตร์ หรือค่าคงที่ของระบบ
- สัญลักษณ์: ใช้เครื่องหมายวงเล็บ
( ) - จุดเด่น: ทำงานเร็วกว่า List และป้องกันการเผลอไปแก้ข้อมูลโดยไม่ตั้งใจ
coordinates = (13.7563, 100.5018)
# coordinates[0] = 14.0 <-- แบบนี้จะ Error ทันที!
3. Set (เซต) - เน้นความไม่ซ้ำ
Set คือการเก็บข้อมูลแบบไม่สนลำดับ และที่สำคัญคือ "ห้ามมีข้อมูลซ้ำกันเด็ดขาด" ถ้าใส่ค่าซ้ำเข้าไป Python จะคัดออกให้โดยอัตโนมัติครับ
- สัญลักษณ์: ใช้เครื่องหมายปีกกา
{ } - จุดเด่น: ใช้เช็กว่ามีข้อมูลนี้อยู่ในกลุ่มไหมได้เร็วมาก และใช้กำจัดค่าซ้ำได้ดีเยี่ยม
tags = {"python", "coding", "web", "python"}
print(tags) # Output: {'python', 'coding', 'web'} (python เหลือตัวเดียว)
4. Dictionary (ดิกชันนารี) - คู่หู Web Developer
Dictionary คือการเก็บข้อมูลแบบ Key-Value Pair (เหมือนสมุดโทรศัพท์ที่มี "ชื่อ" คู่กับ "เบอร์โทร") นี่คือรูปแบบที่ใกล้เคียงกับ JSON ที่สุด ซึ่งสาย Web Dev ต้องเจอทุกวันครับ!
- สัญลักษณ์: ใช้ปีกกาที่มีคู่ข้อมูล
{key: value} - จุดเด่น: ค้นหาข้อมูลด้วย Key ได้รวดเร็วมาก
user = {
"name": "Somsak",
"email": "[email protected]",
"level": 5
}
print(user["name"]) # Output: Somsak
สรุป: เลือกใช้ตัวไหนดี?
| Collection | Syntax | เปลี่ยนค่าได้? | ลำดับ | ข้อมูลซ้ำ |
|---|---|---|---|---|
| List | [ ] |
✅ ใช่ | ✅ มี | ✅ ได้ |
| Tuple | ( ) |
❌ ไม่ได้ | ✅ มี | ✅ ได้ |
| Set | { } |
✅ ใช่ | ❌ ไม่มี | ❌ ไม่ได้ |
| Dictionary | {k:v} |
✅ ใช่ | ✅ มี (3.7+) | ❌ Key ห้ามซ้ำ |
💡 ข้อควรจำสำหรับสาย Web:
เวลาเราดึงข้อมูลจาก Database หรือ API ส่วนใหญ่ข้อมูลจะถูกส่งมาในรูปแบบ List ของ Dictionaries เช่น[{'id': 1, 'name': 'A'}, {'id': 2, 'name': 'B'}]การฝึกจัดการข้อมูล 2 ตัวนี้ให้แม่นจะช่วยให้คุณทำงานง่ายขึ้นมหาศาลครับ!
Workshop: ระบบจัดการโปรไฟล์นักเรียน
ลองนำ List และ Dictionary มาใช้ร่วมกันดูครับ:
# สร้าง List ที่เก็บ Dictionary ของนักเรียน
students = [
{"name": "Alice", "score": 85},
{"name": "Bob", "score": 42},
{"name": "Charlie", "score": 78}
]
for s in students:
if s["score"] >= 50:
status = "ผ่าน ✅"
else:
status = "ไม่ผ่าน ❌"
print(f"นักเรียน: {s['name']} | คะแนน: {s['score']} | ผลลัพธ์: {status}")
สรุปบทเรียน Phase 1
ยินดีด้วยครับ! คุณเรียนจบพื้นฐานหลักของ Python แล้ว ตั้งแต่การติดตั้ง, ตัวแปร, การคำนวณ, เงื่อนไข, ลูป ไปจนถึงการจัดการกลุ่มข้อมูล ตอนนี้คุณมีพื้นฐานที่แน่นพอจะเริ่มเขียนโปรแกรมแก้ปัญหาจริงได้แล้วครับ
ในบทถัดไป (Phase 2 - EP 8): เราจะยกระดับขึ้นไปอีกขั้นกับเรื่อง Functions & Modules ซึ่งจะสอนวิธีเขียนโค้ดให้สะอาด เป็นระเบียบ และไม่ต้องเขียนซ้ำซ้อนครับ