Python сколько раз число появляется в списке, не считая негативов - PullRequest
0 голосов
/ 04 апреля 2020

Я хочу знать, сколько раз число 3 появляется в следующем:

3,3, -3

Ответ 2, но:

print(a.count('3'))

возвращает 3 при подсчете -3

Как исключить негативы?

Редактировать:

Мой полный код:

a=input()
print(a.count('3'))
print(a.count('-3'))

С ввод:

[3,3,-3]

Ответы [ 3 ]

1 голос
/ 04 апреля 2020

вы можете использовать ast.literal_eval :

from ast import literal_eval

a = literal_eval(input())
# input is [3,3,-3]
print(a.count(3))

вывод:

2

с вашим вводом [3,3,-3], применяя literal_eval, вы получите список с числами, которые являются положительными или отрицательными согласно вводу, и подсчет может быть сделан на основе вашего положительного числа 3

1 голос
/ 04 апреля 2020

Проблема в том, что input возвращает строку, а не список. Вам нужно будет преобразовать его в подходящий формат. Вот способ сделать это.

a_string = input()
a = [int(x) for x in a_string.split(",")]

print(a.count(3))

Таким образом, ваш ввод был преобразован в list из int.

Ввод

3,3,-3

Вывод

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

Я проверил ваш случай с python3, и он работает так, как и должно быть. Он учитывает только число, которое вы передаете.

Пример:

a = [3,-3,3]
a.count(3)

Результат будет 2. Если вы передадите -3 на счет, результат будет 1.

Я использовал int в списке, а не строку, поэтому я также использую int в подсчете.

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