Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图计算列表中的负数,python_Python_List_Math - Fatal编程技术网

试图计算列表中的负数,python

试图计算列表中的负数,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:

我试图计算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:
                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

,这本身不是一个答案,因为我完全忽略了您的代码片段,原因有两个:

  • 人们(例如@donkopotamus)已经指出并解释了您的代码输入错误
  • 我发现你的方法有些过分(对于一个简单的单行程序来说是一个完整的类和专用的方法)
  • 以下是一个简单的
    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]))