🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

มาสเตอร์คอลเลกชันของ Python! คู่มือฉบับสมบูรณ์เกี่ยวกับลิสต์และดิกชันนารี

หากต้องการเรียกใช้ Python ผ่าน Command Prompt หรือ PowerShell บนคอมพิวเตอร์ของคุณ คุณจำเป็นต้องดาวน์โหลดและติดตั้ง Python ก่อน
หากคุณยังไม่ได้ติดตั้ง กรุณาดูบทความ การติดตั้ง Python และการตั้งค่าสภาพแวดล้อมการพัฒนา เพื่อทำการติดตั้ง Python

ในการสร้างเว็บไซต์และการพัฒนาแอปพลิเคชัน มีหลายครั้งที่คุณต้องการจัดการข้อมูลจำนวนมากอย่างมีประสิทธิภาพใช่ไหมครับ? ตัวอย่างเช่น รายการบทความในบล็อก, รายการสินค้าในเว็บไซต์ E-commerce, หรือข้อมูลผู้ใช้ ทั้งหมดนี้คือ "ชุดข้อมูล" ทั้งสิ้น ใน Python มีกลไกที่มีประสิทธิภาพสำหรับจัดการชุดข้อมูลเหล่านี้อย่างชาญฉลาด เรียกว่า "คอลเลกชัน (Collection)" ครับ

ในบทความนี้ เราจะเน้นไปที่ "ลิสต์ (List)" และ "ดิกชันนารี (Dictionary)" ซึ่งเป็นคอลเลกชันที่สำคัญที่สุดใน Python พร้อมอธิบายตั้งแต่พื้นฐานไปจนถึงการประยุกต์ใช้ด้วยตัวอย่างโค้ดที่สามารถคัดลอกไปใช้แล้วทำงานได้ทันที เพื่อให้แม้แต่ Web Creator มือใหม่ก็สามารถเข้าใจได้ง่าย มาเพิ่มระดับทักษะการจัดการข้อมูลของคุณไปพร้อมๆ กัน ด้วยการทดลองโค้dที่ 'ใช้งานได้จริง' กันเถอะ!

1. 'ลิสต์' (List): การจัดเรียงข้อมูลตามลำดับ

สิ่งแรกที่เราจะเรียนรู้คือ "ลิสต์" ครับ ลิสต์เป็นคอลเลกชันพื้นฐานที่สุดที่ช่วยให้คุณจัดเก็บข้อมูลหลายๆ ตัวเรียงตามลำดับได้ ตามชื่อเลยครับ มันเหมาะสำหรับการจัดการข้อมูลที่ลำดับมีความสำคัญ เช่น รายการซื้อของ หรือ ToDo List ในการสร้างเว็บ มันมีประโยชน์ในการจัดการรายการเมนู, รายการแท็กของบทความบล็อก, หรือรายการชื่อไฟล์ในแกลเลอรีรูปภาพครับ

วิธีสร้างลิสต์

การสร้างลิสต์นั้นง่ายมาก เพียงแค่ล้อมรอบข้อมูลด้วยวงเล็บเหลี่ยม [] และคั่นแต่ละข้อมูลด้วยเครื่องหมายจุลภาค , คุณสามารถใส่ได้ทั้งตัวเลข, สตริง, หรือแม้กระทั่งลิสต์ซ้อนลิสต์ก็ยังได้ครับ

# สร้างลิสต์ของสตริง
fruits = ["แอปเปิ้ล", "กล้วย", "ส้ม"]
print(fruits)

# สร้างลิสต์ของตัวเลข
numbers = [1, 2, 3, 4, 5]
print(numbers)

# สามารถผสมข้อมูลต่างชนิดกันได้
mixed_list = [1, "สวัสดี", True, 3.14]
print(mixed_list)

ผลลัพธ์การทำงาน:

['แอปเปิ้ล', 'กล้วย', 'ส้ม']
[1, 2, 3, 4, 5]
[1, 'สวัสดี', True, 3.14]

การเข้าถึงองค์ประกอบ (Index)

ในการดึงข้อมูลเฉพาะ (องค์ประกอบ) ออกมาจากลิสต์ เราจะใช้หมายเลขที่เรียกว่า "อินเด็กซ์ (Index)" ข้อควรจำคือ อินเด็กซ์จะเริ่มนับจาก 0 องค์ประกอบตัวแรกคือ [0], ตัวที่สองคือ [1] ไปเรื่อยๆ ครับ

fruits = ["แอปเปิ้ล", "กล้วย", "ส้ม"]

# ดึงองค์ประกอบตัวแรก (อินเด็กซ์ 0)
first_fruit = fruits[0]
print(f"ผลไม้ชนิดแรก: {first_fruit}")

# ดึงองค์ประกอบตัวที่สาม (อินเด็กซ์ 2)
third_fruit = fruits[2]
print(f"ผลไม้ชนิดที่สาม: {third_fruit}")

ผลลัพธ์การทำงาน:

ผลไม้ชนิดแรก: แอปเปิ้ล
ผลไม้ชนิดที่สาม: ส้ม

การเพิ่มองค์ประกอบ (append)

หากต้องการเพิ่มองค์ประกอบใหม่ต่อท้ายลิสต์ ให้ใช้เมธอด append() ซึ่งเปรียบเสมือนการเพิ่มบทความใหม่เข้าไปท้ายสุดของรายการบล็อกครับ

fruits = ["แอปเปิ้ล", "กล้วย", "ส้ม"]
print(f"ก่อนเพิ่ม: {fruits}")

# เพิ่ม "องุ่น" ต่อท้ายลิสต์
fruits.append("องุ่น")
print(f"หลังเพิ่ม: {fruits}")

ผลลัพธ์การทำงาน:

ก่อนเพิ่ม: ['แอปเปิ้ล', 'กล้วย', 'ส้ม']
หลังเพิ่ม: ['แอปเปิ้ล', 'กล้วย', 'ส้ม', 'องุ่น']

การแก้ไของค์ประกอบ

คุณยังสามารถระบุอินเด็กซ์เพื่อแก้ไขค่าขององค์ประกอบที่มีอยู่เป็นค่าใหม่ได้อีกด้วย

fruits = ["แอปเปิ้ล", "กล้วย", "ส้ม"]
print(f"ก่อนแก้ไข: {fruits}")

# แก้ไของค์ประกอบตัวที่สอง (อินเด็กซ์ 1) เป็น "กีวี"
fruits[1] = "กีวี"
print(f"หลังแก้ไข: {fruits}")

ผลลัพธ์การทำงาน:

ก่อนแก้ไข: ['แอปเปิ้ล', 'กล้วย', 'ส้ม']
หลังแก้ไข: ['แอปเปิ้ล', 'กีวี', 'ส้ม']

การลบองค์ประกอบ (del)

หากต้องการลบองค์ประกอบโดยระบุอินเด็กซ์ ให้ใช้คำสั่ง del ครับ

fruits = ["แอปเปิ้ล", "กล้วย", "ส้ม", "องุ่น"]
print(f"ก่อนลบ: {fruits}")

# ลบองค์ประกอบตัวที่สาม (อินเด็กซ์ 2)
del fruits[2]
print(f"หลังลบ: {fruits}")

ผลลัพธ์การทำงาน:

ก่อนลบ: ['แอปเปิ้ล', 'กล้วย', 'ส้ม', 'องุ่น']
หลังลบ: ['แอปเปิ้ล', 'กล้วย', 'องุ่น']

การตรวจสอบความยาวของลิสต์ (len)

หากต้องการทราบว่าในลิสต์มีองค์ประกอบกี่ตัว ฟังก์ชัน len() จะมีประโยชน์มากครับ สามารถใช้เพื่อนับจำนวนบทความทั้งหมดในบล็อก เป็นต้น

fruits = ["แอปเปิ้ล", "กล้วย", "ส้ม", "องุ่น"]
item_count = len(fruits)

print(f"ในลิสต์มีองค์ประกอบทั้งหมด {item_count} รายการ")

ผลลัพธ์การทำงาน:

ในลิสต์มีองค์ประกอบทั้งหมด 4 รายการ

2. 'ดิกชันนารี' (Dictionary): การจัดการด้วยคีย์และค่า

"ดิกชันนารี" ที่จะแนะนำต่อไปนี้ เป็นโครงสร้างข้อมูลที่ทรงพลังอย่างยิ่งและถูกใช้บ่อยมากในการพัฒนาเว็บ ในขณะที่ลิสต์จัดการข้อมูลด้วยหมายเลข (อินเด็กซ์) ดิกชันนารีจะจัดการข้อมูลเป็นคู่ๆ ด้วยชื่อที่เรียกว่า "คีย์ (Key)" และ "ค่า (Value)" ที่สอดคล้องกัน

มันเหมือนกับสมุดโทรศัพท์ที่จับคู่ระหว่างชื่อคน (คีย์) กับเบอร์โทรศัพท์ (ค่า) เหมาะสำหรับกรณีที่ไม่สนใจลำดับ แต่ต้องการเข้าถึงค่าที่ต้องการได้อย่างรวดเร็วผ่านคีย์ เหมาะอย่างยิ่งสำหรับการจัดการข้อมูลสมาชิกเว็บไซต์ (ชื่อผู้ใช้: "สมชาย", อายุ: 25...) หรือข้อมูลการตั้งค่า (สีธีม: "#333", ขนาดตัวอักษร: "16px"...)

วิธีสร้างดิกชันนารี

ดิกชันนารีสร้างโดยใช้วงเล็บปีกกา {} และเขียนคู่ของ คีย์: ค่า คั่นด้วยเครื่องหมายจุลภาค , โดยปกติแล้วจะใช้สตริงเป็นคีย์

# สร้างข้อมูลผู้ใช้ด้วยดิกชันนารี
user = {
  "name": "สมชาย ใจดี",
  "age": 30,
  "email": "somchai@example.com",
  "is_admin": False
}

print(user)

ผลลัพธ์การทำงาน:

{'name': 'สมชาย ใจดี', 'age': 30, 'email': 'somchai@example.com', 'is_admin': False}

การเข้าถึงค่า (ด้วยคีย์)

ในการดึงค่าออกจากดิกชันนารี เราจะใช้ "คีย์" แทนอินเด็กซ์ของลิสต์ โดยเขียนในรูปแบบ ชื่อดิกชันนารี[คีย์]

user = {
  "name": "สมชาย ใจดี",
  "age": 30,
  "email": "somchai@example.com"
}

# ดึงค่าที่สอดคล้องกับคีย์ "name"
user_name = user["name"]
print(f"ชื่อผู้ใช้: {user_name}")

# ดึงค่าที่สอดคล้องกับคีย์ "age"
user_age = user["age"]
print(f"อายุ: {user_age}")

ผลลัพธ์การทำงาน:

ชื่อผู้ใช้: สมชาย ใจดี
อายุ: 30

การเพิ่มและอัปเดตค่า

การเพิ่มคู่คีย์-ค่าใหม่เข้าไปในดิกชันนารี หรือการอัปเดตค่าของคีย์ที่มีอยู่แล้วนั้นทำได้ง่ายมาก หากระบุคีย์ใหม่แล้วกำหนดค่าจะเป็นการเพิ่ม แต่ถ้าระบุคีย์ที่มีอยู่แล้วจะเป็นการอัปเดตครับ

user = {
  "name": "สมชาย ใจดี",
  "age": 30
}
print(f"ก่อนดำเนินการ: {user}")

# เพิ่มคีย์ใหม่ "city"
user["city"] = "กรุงเทพฯ"
print(f"หลังเพิ่ม: {user}")

# อัปเดตค่าของคีย์ "age" ที่มีอยู่
user["age"] = 31
print(f"หลังอัปเดต: {user}")

ผลลัพธ์การทำงาน:

ก่อนดำเนินการ: {'name': 'สมชาย ใจดี', 'age': 30}
หลังเพิ่ม: {'name': 'สมชาย ใจดี', 'age': 30, 'city': 'กรุงเทพฯ'}
หลังอัปเดต: {'name': 'สมชาย ใจดี', 'age': 31, 'city': 'กรุงเทพฯ'}

การลบองค์ประกอบ (del)

เช่นเดียวกับลิสต์ คุณสามารถใช้คำสั่ง del ร่วมกับคีย์เพื่อลบคู่คีย์-ค่าที่ต้องการได้

user = {
  "name": "สมชาย ใจดี",
  "age": 30,
  "email": "somchai@example.com"
}
print(f"ก่อนลบ: {user}")

# ลบคีย์ "email" และค่าที่สอดคล้องกัน
del user["email"]
print(f"หลังลบ: {user}")

ผลลัพธ์การทำงาน:

ก่อนลบ: {'name': 'สมชาย ใจดี', 'age': 30, 'email': 'somchai@example.com'}
หลังลบ: {'name': 'สมชาย ใจดี', 'age': 30}

การดึงรายการคีย์หรือค่า

หากคุณต้องการดึงรายการคีย์ทั้งหมด หรือค่าทั้งหมดในดิกชันนารี เมธอดอย่าง keys(), values(), และ items() จะมีประโยชน์มากครับ

user = {
  "name": "สมชาย ใจดี",
  "age": 30,
  "city": "กรุงเทพฯ"
}

# ดึงคีย์ทั้งหมด
print(f"รายการคีย์: {user.keys()}")

# ดึงค่าทั้งหมด
print(f"รายการค่า: {user.values()}")

# ดึงคู่คีย์-ค่าทั้งหมดเป็นลิสต์ของ tuple
print(f"คู่คีย์-ค่า: {user.items()}")

ผลลัพธ์การทำงาน:

รายการคีย์: dict_keys(['name', 'age', 'city'])
รายการค่า: dict_values(['สมชาย ใจดี', 30, 'กรุงเทพฯ'])
คู่คีย์-ค่า: dict_items([('name', 'สมชาย ใจดี'), ('age', 30), ('city', 'กรุงเทพฯ')])

3. การประยุกต์ใช้: สร้างหน้ารายการสินค้าแบบไดนามิกด้วย Python!

เมื่อนำลิสต์และดิกชันนารีที่เรียนมาผสมผสานกัน จะสามารถสร้างการทำงานที่ใช้งานได้จริงอย่างมากครับ ในส่วนนี้ เราจะมาดูตัวอย่างการจัดการรายการสินค้าของเว็บไซต์ E-commerce ด้วย Python และสร้าง HTML จากข้อมูลนั้นโดยอัตโนมัติ ซึ่งนี่คือแนวคิดพื้นฐานที่เว็บเฟรมเวิร์ก (เช่น Django หรือ Flask) ใช้ทำงานอยู่เบื้องหลัง

ขั้นแรก เราจะกำหนดข้อมูลสินค้าใน Python ในรูปแบบ "ลิสต์ของดิกชันนารี" โดยแต่ละสินค้าจะเป็นดิกชันนารีหนึ่งตัว ซึ่งข้างในจะประกอบด้วยข้อมูลอย่างชื่อสินค้า, ราคา, และชื่อไฟล์รูปภาพครับ

<!-- นี่คือตัวอย่างโค้ด Python ที่จะทำงานบนเว็บเซิร์ฟเวอร์เพื่อสร้าง HTML ด้านล่าง -->
#
# import html
#
# # ลิสต์ของข้อมูลสินค้า (แต่ละสินค้าคือดิกชันนารี)
# products = [
#     {
#         "name": "เสื้อยืดผ้าฝ้ายออร์แกนิก",
#         "price": 450,
#         "image": "tshirt.jpg",
#         "description": "เสื้อยืดผ้าฝ้ายออร์แกนิก 100% สัมผัสนุ่มสบาย"
#     },
#     {
#         "name": "รองเท้าผ้าใบแคนวาส",
#         "price": 820,
#         "image": "sneakers.jpg",
#         "description": "รองเท้าผ้าใบแคนวาสสุดคลาสสิกที่เข้ากับทุกสไตล์"
#     },
#     {
#         "name": "กระเป๋าเป้หนัง",
#         "price": 1980,
#         "image": "backpack.jpg",
#         "description": "กระเป๋าเป้หนังแท้ ยิ่งใช้ยิ่งมีเสน่ห์"
#     }
# ]
#
# # สร้าง HTML
# html_content = ""
# for product in products:
#     # อย่าลืม escape HTML
#     name_esc = html.escape(product["name"])
#     desc_esc = html.escape(product["description"])
#     img_esc = html.escape(product["image"])
#
#     html_content += f"""
# <div class="product-card">
#   <img src="images/{img_esc}" alt="{name_esc}">
#   <h3>{name_esc}</h3>
#   <p class="price">฿{product['price']:,}</p>
#   <p>{desc_esc}</p>
# </div>
# """
#
# # นำ html_content นี้ไปเขียนลงไฟล์ หรือส่งต่อไปยังเทมเพลตของเว็บเฟรมเวิร์ก
# # print(html_content)
#

เมื่อรันโค้ด Python ด้านบน จะได้ผลลัพธ์เป็นโค้ด HTML ดังต่อไปนี้ครับ เมื่อเปิดในเบราว์เซอร์ก็จะแสดงรายการสินค้าขึ้นมา แนวคิดเรื่อง "การแยกข้อมูลออกจากหน้าตา" นี้เป็นกุญแจสำคัญของการสร้างเว็บอย่างมีประสิทธิภาพ

👇ตัวอย่าง HTML ที่ทำงานได้สมบูรณ์👇
คัดลอกโค้ดด้านล่างไปบันทึกเป็นไฟล์ชื่อ products.html แล้วลองเปิดในเบราว์เซอร์ดูนะครับ (※ รูปภาพจะไม่แสดง แต่สามารถตรวจสอบเลย์เอาต์ได้)

<!DOCTYPE html>
<html lang="th">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>รายการสินค้า</title>
  <style>
    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      background-color: #f4f7f6;
      color: #333;
      margin: 0;
      padding: 2rem;
    }
    .container {
      max-width: 1200px;
      margin: 0 auto;
    }
    h1 {
      text-align: center;
      color: #2c3e50;
      margin-bottom: 2rem;
    }
    .product-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 2rem;
    }
    .product-card {
      background-color: #fff;
      border-radius: 8px;
      box-shadow: 0 4px 15px rgba(0,0,0,0.1);
      overflow: hidden;
      transition: transform 0.3s, box-shadow 0.3s;
    }
    .product-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    }
    .product-card img {
      width: 100%;
      height: 200px;
      object-fit: cover;
      background-color: #eee;
    }
    .product-card h3 {
      font-size: 1.25rem;
      margin: 1rem 1.5rem 0.5rem;
      color: #34495e;
    }
    .product-card .price {
      font-size: 1.2rem;
      font-weight: bold;
      color: #e74c3c;
      margin: 0 1.5rem;
    }
    .product-card p {
      font-size: 0.95rem;
      line-height: 1.6;
      margin: 0.5rem 1.5rem 1.5rem;
      color: #7f8c8d;
    }
  </style>
</head>
<body>

  <div class="container">
    <h1>สินค้าแนะนำ</h1>
    <div class="product-grid">
      
      <div class="product-card">
        <img src="images/tshirt.jpg" alt="เสื้อยืดผ้าฝ้ายออร์แกนิก">
        <h3>เสื้อยืดผ้าฝ้ายออร์แกนิก</h3>
        <p class="price">฿450</p>
        <p>เสื้อยืดผ้าฝ้ายออร์แกนิก 100% สัมผัสนุ่มสบาย</p>
      </div>
      
      <div class="product-card">
        <img src="images/sneakers.jpg" alt="รองเท้าผ้าใบแคนวาส">
        <h3>รองเท้าผ้าใบแคนวาส</h3>
        <p class="price">฿820</p>
        <p>รองเท้าผ้าใบแคนวาสสุดคลาสสิกที่เข้ากับทุกสไตล์</p>
      </div>
      
      <div class="product-card">
        <img src="images/backpack.jpg" alt="กระเป๋าเป้หนัง">
        <h3>กระเป๋าเป้หนัง</h3>
        <p class="price">฿1,980</p>
        <p>กระเป๋าเป้หนังแท้ ยิ่งใช้ยิ่งมีเสน่ห์</p>
      </div>

    </div>
  </div>

</body>
</html>

4. เคล็ดลับที่จะสร้างความแตกต่าง! ข้อควรระวังและการเลือกใช้

ลิสต์และดิกชันนารีมีประโยชน์มาก แต่ก็มีข้อควรระวังบางอย่างที่ควรรู้ไว้ การทำความเข้าใจสิ่งเหล่านี้จะนำไปสู่การเขียนโปรแกรมที่ซับซ้อนขึ้นและช่วยหลีกเลี่ยงข้อผิดพลาดที่ไม่คาดคิดได้ครับ

ลิสต์ vs ดิกชันนารี: จะเลือกใช้อะไรดี?

แม้แต่ในเนื้อหาของเว็บไซต์ คุณก็จะพบว่าตัวเองใช้ ลิสต์ สำหรับรายการเมนูที่ลำดับมีความสำคัญ และใช้ ดิกชันนารี สำหรับการตั้งค่าโดยรวมของเว็บไซต์ที่ต้องการจัดการด้วย "คีย์" อย่างเป็นธรรมชาติ

ข้อควรระวังในการ "คัดลอก" ลิสต์!

นี่เป็นหนึ่งในกับดักที่มือใหม่มักจะตกหลุมพรางครับ หากคุณคัดลอกลิสต์ไปยังตัวแปรอื่นโดยใช้เครื่องหมาย = เฉยๆ ตัวลิสต์เองจะไม่ถูกคัดลอก แต่จะเป็นการคัดลอก "ตำแหน่งที่อยู่ (reference)" ของลิสต์ไปแทน ผลก็คือ เมื่อแก้ไขลิสต์หนึ่ง อีกอันก็จะเปลี่ยนไปด้วย

# ตัวอย่างการคัดลอกที่ผิด
list_a = [1, 2, 3]
list_b = list_a  # นี่ไม่ใช่การคัดลอกเนื้อหา!

print(f"ก่อนแก้ไข: list_a = {list_a}, list_b = {list_b}")

# เมื่อแก้ไข list_b...
list_b.append(4)

# กลายเป็นว่า list_a ก็เปลี่ยนไปด้วย!
print(f"หลังแก้ไข: list_a = {list_a}, list_b = {list_b}")

ผลลัพธ์การทำงาน:

ก่อนแก้ไข: list_a = [1, 2, 3], list_b = [1, 2, 3]
หลังแก้ไข: list_a = [1, 2, 3, 4], list_b = [1, 2, 3, 4]

เพื่อหลีกเลี่ยงปัญหานี้ ให้ใช้เมธอด copy() เพื่อสร้างลิสต์ใหม่ที่เป็นอิสระต่อกันโดยสิ้นเชิง

# ตัวอย่างการคัดลอกที่ถูกต้อง
list_a = [1, 2, 3]
list_c = list_a.copy() # ใช้เมธอด copy()

print(f"ก่อนแก้ไข: list_a = {list_a}, list_c = {list_c}")

# แม้จะแก้ไข list_c...
list_c.append(4)

# list_a ก็ไม่ได้รับผลกระทบ!
print(f"หลังแก้ไข: list_a = {list_a}, list_c = {list_c}")

ผลลัพธ์การทำงาน:

ก่อนแก้ไข: list_a = [1, 2, 3], list_c = [1, 2, 3]
หลังแก้ไข: list_a = [1, 2, 3], list_c = [1, 2, 3, 4]

5. ยังมีอีก! คอลเลกชันที่มีประโยชน์อื่นๆ

นอกจากลิสต์และดิกชันนารีแล้ว Python ยังมีคอลเลกชันที่มีประโยชน์อื่นๆ อีกครับ ในที่นี้จะขอแนะนำสั้นๆ 2 อย่าง

ทูเพิล (Tuple)

ทูเพิล พูดง่ายๆ ก็คือ "ลิสต์ที่แก้ไขไม่ได้" ครับ วิธีสร้างก็เพียงแค่เปลี่ยนวงเล็บเหลี่ยม [] ของลิสต์เป็นวงเล็บกลม () เท่านั้น เมื่อสร้างแล้ว จะไม่สามารถเพิ่ม, แก้ไข, หรือลบองค์ประกอบได้ ด้วยเหตุนี้ มันจึงเหมาะกับการจัดการข้อมูลที่ไม่ต้องการให้เปลี่ยนแปลงระหว่างการทำงานของโปรแกรม เช่น ค่าคงที่ต่างๆ

# กำหนดรหัสสี RGB ด้วยทูเพิล
color_red = (255, 0, 0)
print(f"ค่า RGB ของสีแดง: {color_red}")

# เข้าถึงองค์ประกอบตัวแรก
print(f"ค่า R: {color_red[0]}")

# หากพยายามแก้ไขจะเกิดข้อผิดพลาด
# color_red[0] = 200 # TypeError: 'tuple' object does not support item assignment

ผลลัพธ์การทำงาน:

ค่า RGB ของสีแดง: (255, 0, 0)
ค่า R: 255

เซต (Set)

เซต คือคอลเลกชันที่ "ไม่มีค่าซ้ำและไม่มีลำดับ" ครับ มันใช้วงเล็บปีกกา {} เหมือนดิกชันนารี แต่เก็บเฉพาะค่า ไม่ได้เก็บเป็นคู่คีย์-ค่า ประโยชน์หลักๆ คือใช้ในการลบองค์ประกอบที่ซ้ำกันออกจากลิสต์ หรือใช้หาองค์ประกอบที่ซ้ำกันหรือแตกต่างกันระหว่างลิสต์หลายๆ ตัว

# ลิสต์ที่มีข้อมูลซ้ำ
numbers = [1, 2, 2, 3, 4, 4, 4, 5]
print(f"ลิสต์เดิม: {numbers}")

# แปลงเป็นเซตเพื่อลบข้อมูลที่ซ้ำกัน
unique_numbers = set(numbers)
print(f"เซตที่ลบข้อมูลซ้ำแล้ว: {unique_numbers}")

# แปลงกลับเป็นลิสต์
unique_list = list(unique_numbers)
print(f"ข้อมูลที่แปลงกลับเป็นลิสต์: {unique_list}")

ผลลัพธ์การทำงาน:

ลิสต์เดิม: [1, 2, 2, 3, 4, 4, 4, 5]
เซตที่ลบข้อมูลซ้ำแล้ว: {1, 2, 3, 4, 5}
ข้อมูลที่แปลงกลับเป็นลิสต์: [1, 2, 3, 4, 5]

สรุป

ในครั้งนี้ เราได้อธิบายเกี่ยวกับ "ลิสต์" และ "ดิกชันนารี" ซึ่งเป็นหัวใจของโครงสร้างข้อมูลใน Python ตั้งแต่การใช้งานพื้นฐานไปจนถึงตัวอย่างการประยุกต์ใช้ในการสร้างเว็บ

การใช้คอลเลกชันเหล่านี้ได้อย่างคล่องแคล่วจะช่วยเพิ่มประสิทธิภาพในการเขียนโปรแกรมด้วย Python ได้อย่างก้าวกระโดด โดยเฉพาะในโลกของการพัฒนาเว็บ ที่มีขั้นตอนพื้นฐานคือการนำข้อมูลที่ได้จากฐานข้อมูลมาจัดการในรูปแบบของลิสต์หรือดิกชันนารีเพื่อสร้าง HTML ต่อไป ลองนำโค้ดในบทความนี้ไปรันด้วยตัวเอง แล้วสัมผัสกับ "ความสนุกในการจัดการข้อมูล" ได้เลยครับ!

ขั้นตอนต่อไป:
เมื่อคุณคุ้นเคยกับการจัดการข้อมูลแล้ว ขั้นตอนต่อไปคือการเรียนรู้วิธีอ่านข้อมูลจากไฟล์และบันทึกผลลัพธ์ลงในไฟล์ บทความต่อไปนี้ได้อธิบายไว้อย่างละเอียดครับ
วิธีอ่านและเขียนไฟล์ใน Python (I/O)