python 与零值比较_程序将Python中零值的行和列中的每个元素转换为零

假设我们有一个二维数字矩阵,现在针对给定矩阵中的每个零,并将其行和列中的所有值替换为零,然后返回最终矩阵。

因此,如果输入就像矩阵,那么输出将是矩阵,因为第0、2和3行包含0,而最后的矩阵在这些行中包含0。类似地,第0列,第1列和第2列包含0,而这些列中的最终矩阵包含0。

为了解决这个问题,我们将按照以下步骤操作:n := row count, m := column count

res := make a matrix of size n x m and fill with 0

transpose := transpose given matrix

for each row i, do

if 0 not in matrix[i], then

for each column j in matrix, do

if 0 not in transpose[j], then

res[i, j] := matrix[i, j]

return res

让我们看下面的实现以更好地理解-

示例class Solution:

def solve(self, matrix):

n, m = len(matrix), len(matrix[0])

res = [[0 for __ in range(m)] for _ in range(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 res

ob = 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]

]

print(ob.solve(matrix))

输入值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] ]

输出结果[[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]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值