โจทย์: หาดัชนี (Index) ของสมาชิกในลิสต์ที่มีค่ามากกว่า K
Input/Output
numbers = [3, 4, 5, 23, 12, 10, 16] K = 10 Output: 3 4 6 (index ของ 23, 12, 16)
วิธีที่ 1: ใช้ Loop ธรรมดา
numbers = [3, 4, 5, 23, 12, 10, 16]
K = 10
for i in range(len(numbers)):
if numbers[i] > K:
print(i, end=' ')
ผลลัพธ์
3 4 6
วิธีที่ 2: ใช้ enumerate() และ List Comprehension (แนะนำ)
enumerate() ให้ (index, value) พร้อมกัน ใช้กรองด้วยเงื่อนไข
numbers = [3, 4, 5, 23, 12, 10, 16] K = 10 result = [index for (index, number) in enumerate(numbers) if number > K] print(*result)
ผลลัพธ์
3 4 6
ข้อดีของ enumerate: ไม่ต้องใช้ numbers[i] เข้าถึงค่าซ้ำ อ่านง่าย และเป็น Pythonic