มาดูวิธีใช้ 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–100 ที่เป็นพหุคูณของ 3 แล้วคูณ 3 อีกครั้ง