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

Python – ตรวจสอบว่า Index ขององค์ประกอบเท่ากับค่าในลิสต์หรือไม่

บทความนี้สาธิตวิธีตรวจสอบว่าตำแหน่ง (Index) ขององค์ประกอบในลิสต์เท่ากับค่าขององค์ประกอบนั้นหรือไม่ โดยใช้ enumerate()

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

my_list_1 = [12, 62, 19, 79, 58, 0, 99]
my_list_2 = [12, 74, 19, 54, 58, 0, 11]
check_list = [9, 8, 2]

print(f"List 1: {my_list_1}")
print(f"List 2: {my_list_2}")
print(f"Check List: {check_list}")

# เรียงลำดับก่อน (ตามโค้ดต้นฉบับ)
my_list_1.sort()
my_list_2.sort()
print(f"List 1 เรียงแล้ว: {my_list_1}")
print(f"List 2 เรียงแล้ว: {my_list_2}")

# ตรวจสอบ
my_result = True
for index, element in enumerate(my_list_1):
    # เงื่อนไข: ค่าที่ index ต่างกันใน list_1 และ list_2
    # และ element อยู่ใน check_list
    if my_list_1[index] != my_list_2[index] and element in check_list:
        my_result = False
        break

print(f"\nผลลัพธ์: {'Index elements เท่ากับ elements ของ list' if my_result else 'Index elements ไม่เท่ากับ elements ของ list'}")

ผลลัพธ์

List 1: [12, 62, 19, 79, 58, 0, 99]
List 2: [12, 74, 19, 54, 58, 0, 11]
Check List: [9, 8, 2]

List 1 เรียงแล้ว: [0, 12, 19, 58, 62, 79, 99]
List 2 เรียงแล้ว: [0, 11, 12, 19, 54, 58, 74]

ผลลัพธ์: Index elements เท่ากับ elements ของ list

อธิบาย Logic

โค้ดนี้ตรวจสอบว่า: "มีตำแหน่งไหนที่ค่าใน list_1 และ list_2 ต่างกัน และค่านั้นอยู่ใน check_list ไหม?"

  • หลังเรียง: Index 0: 0 vs 0 (เท่ากัน) ✓
  • Index 1: 12 vs 12 (เท่ากัน) ✓
  • Index 2: 19 vs 19 (เท่ากัน) ✓
  • ... ทุกคู่เท่ากัน จึงไม่เข้าเงื่อนไข False

โค้ดที่อ่านง่ายกว่า

def check_index_value_match(list1, list2, check_values):
    """ตรวจสอบว่ามี Index ไหนที่ list1 != list2 และค่านั้นอยู่ใน check_values"""
    for i, (v1, v2) in enumerate(zip(list1, list2)):
        if v1 != v2 and v1 in check_values:
            return False, i, v1
    return True, None, None

# ใช้งาน
ok, idx, val = check_index_value_match(my_list_1, my_list_2, check_list)
print(f"ผ่าน: {ok}")

การประยุกต์ใช้

  • Validation ข้อมูล: ตรวจสอบว่าลำดับข้อมูลตรงกับที่คาดหวัง
  • Testing: เปรียบเทียบ Expected vs Actual output
  • Data Quality Check: หาค่าที่ผิดปกติในตำแหน่งเฉพาะ