แนวคิด
กำหนดค่า x, y ตรวจสอบว่าค่า y ทุกตัวในลิสต์อยู่ "หลัง" ค่า x แรกที่เจอ (index มากกว่า) หรือไม่
ตัวอย่างโค้ด
my_list = [11, 25, 13, 11, 64, 25, 8, 9]
print("ลิสต์:", my_list)
x, y = 13, 8
x_index = my_list.index(x) # index แรกของ x
print(f"Index ของ x={x}: {x_index}")
my_result = True
for index, element in enumerate(my_list):
if element == y and index < x_index:
my_result = False
break
if my_result:
print(f"y={y} ทุกตัวอยู่หลัง x={x}")
else:
print(f"มี y={y} อยู่ก่อน x={x}")
ผลลัพธ์
ลิสต์: [11, 25, 13, 11, 64, 25, 8, 9]
Index ของ x=13: 2
y=8 ทุกตัวอยู่หลัง x=13
วิธี Pythonic
# หา index ของ x แรก
x_idx = my_list.index(x)
# ตรวจสอบว่ามี y ก่อน x_idx หรือไม่
has_y_before = any(elem == y for i, elem in enumerate(my_list) if i < x_idx)
print("y ทุกตัวหลัง x:", not has_y_before)
# หรือใช้ slicing
print("y ทุกตัวหลัง x:", y not in my_list[:x_idx])
กรณี x ไม่อยู่ในลิสต์
try:
x_idx = my_list.index(x)
except ValueError:
print("x ไม่อยู่ในลิสต์")
# จัดการตาม logic ที่ต้องการ