как генератор можно сравнить и добавить его значения bool - PullRequest
0 голосов
/ 06 апреля 2019

Когда я повторяю генератор, я могу использовать функцию суммы, чтобы сравнить значения и добавить их. Я не думаю, что bool является аддитивным. Вот пример.

A = [int(x) for x in input().split()]
B = [int(x) for x in input().split()]
print(sum(a > b for a, b in zip(A, B)), sum(a < b for a, b in zip(A, B))

1 Ответ

0 голосов
/ 06 апреля 2019

Логическое значение явно рассматривается как целое число и является подклассом.

Для проверки мы можем использовать issubclass:

>>> issubclass(bool, int)
True

Из документы :

Логические: они представляют значения истинности. Логические значения False и True [...] ведут себя как значения 0 и 1 соответственно, почти во всех контекстах, за исключением того, что при преобразовании в строкувозвращаются строки «False» или «True», соответственно

sum(a > b for a, b in zip(A, B))

Здесь a > b возвращает True или False в зависимости от того, a больше или меньше b соответственно.Все True s являются фактическими 1, а False s - 0.sum() на них насчитывается число True с.

...