False == 0
和True == 1
(假设它们没有被用户重新赋值)?例如,无论Python的版本(包括现有版本和可能的未来版本),下面的代码是否始终会产生相同的结果?0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
非常感谢任何提供官方文档的参考!
正如许多答案中所指出的,`bool`是从`int`继承而来。因此,可以将问题重新提出为:“官方文档是否明确表示程序员可以依赖布尔值从整数继承,且取值为`0`和`1`?”这个问题对于编写健壮的代码,避免因为实现细节而导致失败非常重要!
sum(bool_list)
。否则,你就必须写成sum(1 for x bool_list if x)
。 - dan04bool_list.count(True)
更加显式;而且速度也快大约3倍... :) - Eric O. Lebigot