gpt4 book ai didi

python - 想要在python中返回全零矩阵的行数

转载 作者:行者123 更新时间:2023-11-30 22:21:15 27 4
gpt4 key购买 nike

我想返回一个输出,即元素中全零的行数。这是我的 python 代码,我无法确定错误在哪里。

def find_bully_1(A):

n = len(A)
candidate = 0
count = 0


for i in range(n):
for j in range(n):
if A[i][j] == 0:
count = count + 1
if count == n:
candidate = candidate + 1
return candidate




x = [[1,1,1,1],
[0,0,0,0],
[0,0,0,0],
[0,1,0,0]]


find_bully_1(x)

The output should be 2 but it keeps return 1.

最佳答案

您的代码对迄今为止看到的每个零进行计数,但它应该只计算当前行中的零。要解决此问题,您需要在进入 for j in range(n): 循环之前将 count 重置为零。

但是,以这种方式计算全零行的效率很低。更好的方法是使用 sumany 结合使用或全部。例如:

def find_bully_1(a):
return sum(not any(u) for u in a)

x = [
[1,1,1,1],
[0,0,0,0],
[0,0,0,0],
[0,1,0,0],
]

print(find_bully_1(x))

输出

2
<小时/>

FWIW,我不会费心将该代码放入函数中,因为 Python 函数调用相对较慢,并且调用该函数所需的代码并不比编写代码本身短多少:

print(sum(not any(u) for u in x))

关于python - 想要在python中返回全零矩阵的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48690127/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com