当迭代生成器时,可以使用sum函数比较值并将它们相加。我不认为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))
答案 0 :(得分:0)
布尔型被明确视为整数,并且是子类。
要进行检查,我们可以使用issubclass
:
>>> issubclass(bool, int)
True
来自docs:
布尔值:这些布尔值表示真值False和True [...] 布尔值的行为几乎分别类似于值0和1 所有上下文,唯一的例外是当转换为字符串时, 分别返回字符串“ False”或“ True”
sum(a > b for a, b in zip(A, B))
此处,a > b
返回True
或False
,具体取决于a
大于还是小于b
。所有True
都是1,而False
是0。 sum()
上的True
个数。