如何比较生成器并添加其布尔值

时间:2019-04-06 03:57:39

标签: python python-3.x sum zip tuples

当迭代生成器时,可以使用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))

1 个答案:

答案 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返回TrueFalse,具体取决于a大于还是小于b。所有True都是1,而False是0。 sum()上的True个数。