False == 0
そしてTrue == 1
、Pythonでは(ユーザーによって再割り当てされないと仮定して)が保証されていますか?たとえば、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)
。
bool_list.count(True)
はもっと明白です。また、約3倍高速です... :)