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

โปรแกรมแปลงแต่ละองค์ประกอบในแถวและคอลัมน์เป็นศูนย์สำหรับค่าศูนย์ใน Python


สมมติว่าเรามีเมทริกซ์ตัวเลข 2 มิติ ตอนนี้สำหรับศูนย์แต่ละตัวในเมทริกซ์ที่กำหนด และแทนที่ค่าทั้งหมดในแถวและคอลัมน์ด้วยศูนย์ แล้วส่งคืนเมทริกซ์สุดท้าย

ดังนั้น ถ้าอินพุตเป็นเหมือนเมทริกซ์ ผลลัพธ์จะเป็นเมทริกซ์เนื่องจากแถวที่ 0, 2 และ 3 มี 0 และเมทริกซ์สุดท้ายมี 0 ในแถวเหล่านั้น ในทำนองเดียวกัน คอลัมน์ที่ 0 ที่ 1 และ 2 มี 0 และเมทริกซ์สุดท้ายมี 0 ในคอลัมน์เหล่านั้น

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้:

n :=จำนวนแถว m :=จำนวนคอลัมน์ :=สร้างเมทริกซ์ขนาด n x m และเติมด้วย 0transpose :=ย้ายเมทริกซ์ที่กำหนดสำหรับแต่ละแถว i ถ้า 0 ไม่อยู่ในเมทริกซ์ [i] จากนั้นสำหรับแต่ละคอลัมน์ j ในเมทริกซ์ ให้ทำถ้า 0 ไม่อยู่ในทรานสโพส[j] แล้ว res[i, j] :=matrix[i, j]return res

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

คลาสโซลูชัน:def แก้(ตัวเอง, เมทริกซ์):n, m =len(เมทริกซ์), len(เมทริกซ์[0]) res =[[0 สำหรับ __ ในช่วง (ม.)] สำหรับ _ ในช่วง (n) ] transpose =[list(row) for row in zip(*matrix)] for i in range(n):if 0 not in matrix[i]:for j in range(m):if 0 not in transpose[j] :res[i][j] =matrix[i][j] return resob =Solution()matrix =[ [6, 0, 0, 6, 9], [4, 9, 9, 4, 8], [ 0, 8, 3, 4, 2], [9, 0, 7, 8, 3], [5, 2, 9, 6, 8]]พิมพ์(ob.solve(เมทริกซ์))

อินพุต

<พรี>เมทริกซ์ =[ [6, 0, 0, 6, 9], [4, 9, 9, 4, 8], [0, 8, 3, 4, 2], [9, 0, 7, 8 , 3], [5, 2, 9, 6, 8] ]

ผลลัพธ์

<ก่อนหน้า>[[0, 0, 0, 0, 0], [0, 0, 0, 4, 8], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0 ], [0, 0, 0, 6, 8]]