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

กรอง Tuple ที่มีสมาชิกเหมือนกันทุกตัว

แนวคิด

จากลิสต์ของ tuples ให้คืนเฉพาะ tuple ที่สมาชิกทุกตัวเหมือนกัน (เช่น (11,11), (45,45,45)) ใช้ set() และ len()

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

my_list = [(31, 54, 45, 11, 99), (11, 11), (45, 45, 45), (31, 54, 45, 11, 99), (99, 99), (0, 0)]
print("ลิสต์:", my_list)

my_result = [tup for tup in my_list if len(set(tup)) == 1]
print("Tuple ที่สมาชิกเหมือนกันหมด:", my_result)

ผลลัพธ์

ลิสต์: [(31, 54, 45, 11, 99), (11, 11), (45, 45, 45), (31, 54, 45, 11, 99), (99, 99), (0, 0)]
Tuple ที่สมาชิกเหมือนกันหมด: [(11, 11), (45, 45, 45), (99, 99), (0, 0)]

คำอธิบาย

  • set(tup) ลบค่าซ้ำใน tuple
  • len(set(tup)) == 1 หมายถึงมีค่า unique เพียง 1 ค่า -> ทุกสมาชิกเท่ากัน
  • ทำงานได้กับ tuple ความยาวเท่าไหร่ก็ได้

กรณี Tuple ว่าง

# () -> set() -> len=0 -> ไม่ผ่านเงื่อนไข
# หากต้องการนับ tuple ว่างว่า "เหมือนกันหมด" ให้เพิ่ม: or len(tup) == 0