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

Python – ลบ Index ของ Duplicate Elements จาก List อื่น

ภาพรวม

จาก 2 list ความยาวเท่ากัน ให้ลบ element ใน list ที่ 2 ที่ index ตรงกับตำแหน่งของ duplicate elements ใน list ที่ 1

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


my_list_1 = [4, 5, 6, 5, 4, 7, 8, 6]
my_list_2 = [1, 7, 6, 4, 7, 9, 10, 11]

print("The first list is:", my_list_1)
print("The second list is:", my_list_2)

# หา index ของ duplicates ใน list_1
seen = set()
dup_indices = []
for idx, val in enumerate(my_list_1):
    if val in seen:
        dup_indices.append(idx)
    else:
        seen.add(val)

# คัด list_2 เฉพาะ index ที่ไม่อยู่ใน dup_indices
my_result = [val for idx, val in enumerate(my_list_2) if idx not in dup_indices]

print("The result is:", my_result)

ผลลัพธ์

The first list is: [4, 5, 6, 5, 4, 7, 8, 6]
The second list is: [1, 7, 6, 4, 7, 9, 10, 11]
The result is: [1, 7, 6, 9, 10]

คำอธิบาย Index

Indexlist_1Duplicate?list_2Keep?
04First1✓
15First7✓
26First6✓
35Yes (idx 1)4✗
44Yes (idx 0)7✗
57First9✓
68First10✓
76Yes (idx 2)11✗

เวอร์ชัน Pandas (สะดวกกว่าสำหรับข้อมูลใหญ่)


import pandas as pd
s1 = pd.Series(my_list_1)
s2 = pd.Series(my_list_2)
mask = ~s1.duplicated(keep='first')
result = s2[mask].tolist()