试图计算列表中的负数,python
我试图计算2d列表中的负数,但我的代码总是返回错误的数字。 名单如下:试图计算列表中的负数,python,python,list,math,Python,List,Math,我试图计算2d列表中的负数,但我的代码总是返回错误的数字。 名单如下: [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]] 这是我的密码: class Solution: def countNegatives(self, grid: List[List[int]]) -> int: i = 0 for x in grid: for x2 in x:
[[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]
这是我的密码:
class Solution:
def countNegatives(self, grid: List[List[int]]) -> int:
i = 0
for x in grid:
for x2 in x:
if x2 < 0:
i =+1
return i
类解决方案:
def countNegatives(self,grid:List[List[int]])->int:
i=0
对于网格中的x:
对于x中的x2:
如果x2<0:
i=+1
返回i
我的代码一直返回1,即使正确答案是8。为什么会这样 我想你打错了 更改:
i =+1
致:
因为
i =+1
对我来说是完全不同的说法
i += 1
前者要求将
i
设置为等于+1
(i=(+1)
),而后者增加i
,这本身不是一个答案,因为我完全忽略了您的代码片段,原因有两个:
numpy
方法供将来参考:
import numpy as np
a = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]
print(np.sum(np.array(a) < 0))
将numpy导入为np
a=[[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],-1,-1,-2,-3]]
打印(np.和(np.数组(a)<0))
或者对于无numpy的解决方案:
print(sum([x < 0 for y in a for x in y]))
打印(求和([x<0表示y中的y表示x中的y]))
注:由于评论部分的局限性,为了让未来的解决方案寻求者更清楚,我使用的是“回答”格式,而不仅仅是“评论”。这种方法很好。事实上,这比你发布的答案更有效,但就问题的背景而言,我无法访问外部库。但是,另一个没有numpy的答案肯定会奏效。因为你没有回答提问者实际面临的合法问题,所以被否决了,让他们可以在未来在不同的背景下自由地再次回答。@donkopotamus这很愚蠢,因为这已经被回答和接受了。我只是为了提问者的整体利益以及未来的博文读者添加有用的信息…@shlomif那么这是一个评论,不是答案
print(sum([x < 0 for y in a for x in y]))