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

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

แนวคิด

ตรวจสอบว่าในลิสต์ของ 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 ว่าง: () ไม่มีสมาชิก ต้องตัดสินใจว่านับว่าผ่านหรือไม่