วนโครงสร้างข้อมูลอย่างมีประสิทธิภาพ

Basic python

วนโครงสร้างข้อมูลอย่างมีประสิทธิภาพ

มาดูวิธีใช้ for กับโครงสร้างข้อมูลต่าง ๆ ให้สะดวกขึ้น

วนลิสต์ #

tasks = ["เช็กอีเมล", "ประชุม", "ส่งรายงาน"]
for task in tasks:
    print(f"งานถัดไป: {task}")

enumerate #

for index, task in enumerate(tasks, start=1):
    print(index, task)

วนดิกชันนารี #

stock = {"AAPL": 10, "MSFT": 5, "GOOG": 2}
for symbol, qty in stock.items():
    print(f"{symbol}: {qty}")

items() ให้ทั้งคีย์และค่า ส่วน keys() / values() ใช้เมื่อสนใจด้านเดียว

จัดการข้อมูลซ้อนกัน #

users = [
    {"name": "Alice", "scores": [80, 90, 88]},
    {"name": "Bob", "scores": [70, 65, 72]}
]

for user in users:
    avg = sum(user["scores"]) / len(user["scores"])
    print(f"{user['name']} มีค่าเฉลี่ย {avg:.1f}")

ลิสต์คอมพรีเฮนชัน + เงื่อนไข #

numbers = [1, 2, 3, 4, 5, 6]
even_squares = [n * n for n in numbers if n % 2 == 0]

ลองทำดู #

  1. สร้างสมุดที่อยู่เป็นลิสต์ของดิกชันนารี แล้วนับจำนวนคนในแต่ละจังหวัด
  2. มีหมวดหมู่และรายการสินค้าแบบสองชั้น ให้แสดงผลรูปแบบ “หมวดหมู่: รายการ”
  3. ใช้ลิสต์คอมพรีเฮนชันสร้างรายการเลข 1–100 ที่เป็นพหุคูณของ 3 แล้วคูณ 3 อีกครั้ง