Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่า y ทุกตัวอยู่หลัง x ในลิสต์หรือไม่

แนวคิด

กำหนดค่า 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 ที่ต้องการ