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

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

บทนำ

เมื่อต้องการลบ tuple ที่ซ้ำกันออกจากรายการ (list) ของ tuples สามารถใช้วิธีการต่างๆ เช่น ลูป for ร่วมกับฟังก์ชัน any() และ enumerate() เพื่อตรวจสอบและกรองเฉพาะค่าที่ไม่ซ้ำกัน

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

def remove_duplicate_tuples(tuple_list):
    """ลบ tuple ซ้ำ โดยรักษาลำดับเดิม"""
    seen = set()
    result = []
    for tup in tuple_list:
        if tup not in seen:
            seen.add(tup)
            result.append(tup)
    return result

# ตัวอย่างข้อมูล
my_list = [(23, 45), (25, 17), (35, 67), (25, 17)]
print("รายการ tuple เดิม:", my_list)

unique_list = remove_duplicate_tuples(my_list)
print("หลังลบค่าซ้ำ:", unique_list)

ผลลัพธ์

รายการ tuple เดิม: [(23, 45), (25, 17), (35, 67), (25, 17)]
หลังลบค่าซ้ำ: [(23, 45), (25, 17), (35, 67)]

คำอธิบาย

  • ใช้ set() เก็บค่าที่เคยเจอแล้ว เพื่อตรวจสอบความซ้ำได้ใน O(1)
  • วนลูปผ่านแต่ละ tuple ในลิสต์ ตรวจสอบว่าอยู่ใน set แล้วหรือยัง
  • ถ้ายังไม่เคยเจอ ให้เพิ่มเข้า set และเก็บไว้ในผลลัพธ์
  • วิธีนี้รักษาลำดับเดิมของข้อมูล (preserve order)

วิธีอื่น (List Comprehension)

# ใช้ list comprehension ร่วมกับ set (สั้นกว่า แต่อ่านยากกว่า)
seen = set()
unique = [t for t in my_list if not (t in seen or seen.add(t))]
print(unique)