แนวคิด
จากลิสต์ของ 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)ลบค่าซ้ำใน tuplelen(set(tup)) == 1หมายถึงมีค่า unique เพียง 1 ค่า -> ทุกสมาชิกเท่ากัน- ทำงานได้กับ tuple ความยาวเท่าไหร่ก็ได้
กรณี Tuple ว่าง
# () -> set() -> len=0 -> ไม่ผ่านเงื่อนไข
# หากต้องการนับ tuple ว่างว่า "เหมือนกันหมด" ให้เพิ่ม: or len(tup) == 0