บทนำ
Tuple matrix คือ tuple ที่ element แต่ละตัวก็เป็น tuple (nested tuple) การลบ "แถว" (inner tuple) ที่ element ทุกตัวเหมือนกัน เช่น (78, 78, 78) สามารถใช้ all() ร่วมกับ generator expression
ตัวอย่างโค้ด
matrix = ((11, 14, 0), (78, 33, 11), (10, 78, 0), (78, 78, 78))
print("Matrix เดิม:", matrix)
# กรองเฉพาะแถวที่ไม่ใช่ค่าเหมือนกันทั้งแถว
filtered = tuple(row for row in matrix if not all(x == row[0] for x in row))
print("หลังลบแถวค่าเหมือน:", filtered)
ผลลัพธ์
Matrix เดิม: ((11, 14, 0), (78, 33, 11), (10, 78, 0), (78, 78, 78)) หลังลบแถวค่าเหมือน: ((11, 14, 0), (78, 33, 11), (10, 78, 0))
คำอธิบาย
all(x == row[0] for x in row)ตรวจสอบว่า element ทุกตัวใน row เท่ากับตัวแรกหรือไม่not all(...)คืน True ถ้ามี element ต่างกันอย่างน้อย 1 ตัว (คือไม่ใช่แถวค่าเหมือน)- Generator expression สร้าง tuple ใหม่จาก row ที่ผ่านเงื่อนไข
การประยุกต์: ลบแถวที่มีค่าเฉพาะเจาะจง
# ลบแถวที่เป็นแค่ศูนย์ non_zero_rows = tuple(row for row in matrix if not all(x == 0 for x in row))