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

ตรวจสอบว่า Tuple มีค่าไม่ซ้ำกันทั้งหมด (Distinct) ใน Python

บทนำ

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

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

my_tuple = (11, 14, 54, 0, 58, 41)
print("Tuple:", my_tuple)

# ตรวจสอบ distinct
is_distinct = len(set(my_tuple)) == len(my_tuple)

print("มีค่าซ้ำหรือไม่?", not is_distinct)
print("Distinct (ไม่ซ้ำ) หรือไม่?", is_distinct)

ผลลัพธ์

Tuple: (11, 14, 54, 0, 58, 41)
มีค่าซ้ำหรือไม่? False
Distinct (ไม่ซ้ำ) หรือไม่? True

คำอธิบาย

  • set(my_tuple) สร้าง set จาก tuple (ลบค่าซ้ำอัตโนมัติ)
  • ถ้า len(set) == len(tuple) แปลว่าไม่มีค่าซ้ำ (distinct)
  • ถ้า len(set) < len(tuple) แปลว่ามีค่าซ้ำ

การประยุกต์: หาค่าที่ซ้ำ

from collections import Counter

counts = Counter(my_tuple)
duplicates = [item for item, count in counts.items() if count > 1]
print("ค่าที่ซ้ำ:", duplicates)  # [] ถ้าไม่มีซ้ำ

ประสิทธิภาพ

  • เวลา: O(n) - สร้าง set และนับความยาว
  • พื้นที่: O(n) - เก็บ set
  • เร็วกว่าการ nested loop O(n²) มาก