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

ตรวจสอบว่าค่าที่ index เฉพาะในลิสต์ 1 เท่ากับลิสต์ 2 และอยู่ใน Check List

แนวคิด

มี 2 ลิสต์ขนาดเท่ากัน และ check list ตรวจสอบว่าสำหรับทุก index: ถ้าค่าในลิสต์ 1 อยู่ใน check list แล้ว ต้องเท่ากับค่าในลิสต์ 2 ตรง index นั้น

ตัวอย่างโค้ด

list1 = [69, 96, 23, 57, 13, 75, 13]
list2 = [68, 21, 69, 23, 49, 35, 73]
check_list = [66, 89, 69]

print("List 1:", list1)
print("List 2:", list2)
print("Check list:", check_list)

# เรียงทั้ง 3 ลิสต์ (ตามโค้ดต้นฉบับ)
list1.sort()
list2.sort()
check_list.sort()

print("List 1 sorted:", list1)
print("List 2 sorted:", list2)
print("Check list sorted:", check_list)

result = True
for i, val in enumerate(list1):
    if val in check_list and list1[i] != list2[i]:
        result = False
        break

if result:
    print("เงื่อนไขผ่าน: ค่าใน check list ตรงกันทุก index")
else:
    print("เงื่อนไขไม่ผ่าน: มีค่าใน check list ที่ index ไม่ตรง")

ผลลัพธ์

List 1: [69, 96, 23, 57, 13, 75, 13]
List 2: [68, 21, 69, 23, 49, 35, 73]
Check list: [66, 89, 69]
List 1 sorted: [13, 13, 23, 57, 69, 75, 96]
List 2 sorted: [21, 23, 35, 49, 68, 69, 73]
Check list sorted: [66, 69, 89]
เงื่อนไขไม่ผ่าน: มีค่าใน check list ที่ index ไม่ตรง

คำอธิบาย

หลัง sort: list1 มี 69 อยู่ index 4, list2 มี 69 อยู่ index 5 -> ไม่ตรง -> False

⚠️ ปัญหา Logic

การ sort แยกกันทำให้ index alignment หายไป โจทย์นี้อาจต้องการเปรียบเทียบ "คู่เดิม" (paired data) ไม่ควร sort แยกกัน