แนวคิด
ตรวจสอบว่าในลิสต์ของ tuples/tuples ทุกตัวมีสมาชิกที่เหมือนกันหมด (ทุกค่าเท่ากัน) เช่น [(72,72,72), (72,72), (72,72)] -> True เพราะทุกค่าคือ 72
ตัวอย่างโค้ด
my_list = [(72, 72, 72), (72, 72), (72, 72)]
print("ลิสต์:", my_list)
my_result = True
for sub in my_list:
flag = True
for element in sub:
if element != my_list[0][0]: # เปรียบเทียบกับค่าแรกของ tuple แรก
flag = False
break
if not flag:
my_result = False
break
if my_result:
print("Tuple ทุกตัวมีสมาชิกเหมือนกันหมด")
else:
print("Tuple มีสมาชิกไม่เหมือนกัน")
ผลลัพธ์
ลิสต์: [(72, 72, 72), (72, 72), (72, 72)]
Tuple ทุกตัวมีสมาชิกเหมือนกันหมด
วิธีที่ Pythonic กว่า
# ใช้ set รวมค่าทั้งหมด แล้วเช็คขนาด
all_values = {elem for tup in my_list for elem in tup}
print("ค่าทั้งหมดที่ไม่ซ้ำ:", all_values)
print("เหมือนกันหมดหรือไม่?", len(all_values) == 1)
# หรือ
flat = [elem for tup in my_list for elem in tup]
print(all(x == flat[0] for x in flat))
กรณีขอบเขต
- ลิสต์ว่าง: ควรคืน True หรือ False ตามนิยาม (โค้ดต้นฉบับจะ error)
- Tuple ว่าง:
()ไม่มีสมาชิก ต้องตัดสินใจว่านับว่าผ่านหรือไม่