Skip to main content
 首页 » 编程设计

python之python对象之间的复制和绑定(bind)

2025年05月04日22kerrycode

给定一个矩阵 A,大小为 M x N,包含 0 和 1。如果一个元素为 0,则将其整个行和列设置为 0。

Input 1: 
    [   [1, 0, 1], 
        [1, 1, 1],  
        [1, 1, 1]   ] 
 
Output 1: 
    [   [0, 0, 0], 
        [1, 0, 1], 
        [1, 0, 1]   ] 

我的代码:

def setZeroes(self, A): 
    B=A 
    for i in range(len(A)): 
        for j in range(len(A[i])): 
            if(A[i][j]==0): 
                for x in range(len(A[i])): 
                    B[i][x]=0 
                    for y in range(len(A)): 
                        B[y][j]=0 
        A=B 
    return A 

正在创建一个零矩阵。我想念什么?

请您参考如下方法:

您可以通过用零屏蔽行和列来实现

mask = A==0 
A[:, mask.any(0)] = 0 
A[mask.any(1)] = 0 
print(A) 
array([[0, 0, 0], 
       [1, 0, 1], 
       [1, 0, 1]])