пытаясь посчитать количество отрицательных чисел в списке, python - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь посчитать количество отрицательных чисел в списке 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 

Мой код продолжает возвращать 1, хотя правильный ответ равен 8. Почему это?

Ответы [ 3 ]

4 голосов
/ 19 апреля 2020

Потому что

i =+1

- это совсем другое утверждение, чем

i += 1

Первый буквально просит установить i равным +1 (i = (+1)), в то время как последние приращения i

2 голосов
/ 19 апреля 2020

Я думаю, что вы сделали опечатку.

Изменение:

i =+1

Кому:

i += 1
0 голосов
/ 19 апреля 2020

Это не само по себе ответ, потому что я полностью игнорирую ваш фрагмент кода по двум причинам:

  1. Люди (например, @donkopotamus) уже ответили, указав и объяснив ваш код опечатки.
  2. Я считаю ваш подход излишним (целый класс и специальный метод для простой однострочной)

Для дальнейшего использования, вот простой 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:

print(sum([x < 0 for y in a for x in y]))

PS: я использую формат "ответа" вместо простого "комментирования" "из-за ограничений в разделе комментариев и для ясности для будущих искателей решений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...