Python Collections (List, Tuple, Set, Dict) - จัดระเบียบข้อมูล

Last updated: January 24, 2026

ในการเขียนโปรแกรมจริง ข้อมูลมักจะมาเป็นชุดๆ ครับ เช่น รายชื่อสมาชิก, ราคาสินค้าในตะกร้า หรือข้อมูลโปรไฟล์ผู้ใช้ 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 ซึ่งจะสอนวิธีเขียนโค้ดให้สะอาด เป็นระเบียบ และไม่ต้องเขียนซ้ำซ้อนครับ