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

ลบแถวที่มี Element เหมือนกันทั้งหมดใน Tuple Matrix ด้วย Python

บทนำ

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))