É garantido que False == 0
e True == 1
, em Python (assumindo que eles não foram reatribuídos pelo usuário)? Por exemplo, é de alguma forma garantido que o código a seguir sempre produzirá os mesmos resultados, independentemente da versão do Python (existente e, provavelmente, futura)?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
Qualquer referência à documentação oficial seria muito apreciada!
Editar : Como observado em muitas respostas, bool
herda de int
. A questão pode, portanto, ser reformulada como: "A documentação diz oficialmente que os programadores podem confiar em booleanos herdados de números inteiros, com os valores 0
e1
?". Esta pergunta é relevante para escrever código robusto que não falhará devido aos detalhes da implementação!
sum(bool_list)
. Caso contrário, você teria que escrever sum(1 for x bool_list if x)
.
bool_list.count(True)
é mais explícito; é também sobre 3 vezes mais rápido ... :)