Чи гарантовано це, 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 рази швидше… :)