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

ลบ Tuple ซ้ำออกจาก List ใน Python

บทนำ

การลบ tuple ที่ซ้ำกันออกจากลิสต์ของ tuples สามารถทำได้อย่างง่ายดายโดยแปลงเป็น set (ซึ่งเก็บค่าไม่ซ้ำ) แล้วคืนเป็นลิสต์

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

my_list = [(11, 14), (0, 78), (33, 11), (0, 78)]
print("ลิสต์เดิม:", my_list)

# ใช้ set ลบซ้ำ แล้วแปลงกลับเป็นลิสต์
unique_list = list(set(my_list))

print("หลังลบซ้ำ:", unique_list)

ผลลัพธ์

ลิสต์เดิม: [(11, 14), (0, 78), (33, 11), (0, 78)]
หลังลบซ้ำ: [(33, 11), (11, 14), (0, 78)]

คำอธิบาย

  • Tuple เป็น hashable จึงใส่ใน set ได้โดยตรง
  • set(my_list) ลบค่าซ้ำอัตโนมัติ
  • list(...) แปลงกลับเป็นลิสต์

⚠️ ข้อควรระวัง: ลำดับไม่คงที่

Set ไม่รักษาลำดับ element หากต้องการรักษาลำดับเดิม ใช้วิธีดังนี้:

seen = set()
unique_ordered = [t for t in my_list if not (t in seen or seen.add(t))]
print(unique_ordered)  # [(11, 14), (0, 78), (33, 11)]

สรุป

  • ไม่สนลำดับ → ใช้ list(set(my_list)) (เร็วที่สุด)
  • ต้องรักษาลำดับ → ใช้ set + list comprehension