Сравнение и индексация Python Bool и int в списке с логическими значениями

Индексирование по списку с логическими значениями работает нормально. Хотя индекс должен быть целым числом.

Вот что я попробовал в консоли:

>>> l = [1,2,3,4,5,6]
>>> 
>>> l[False]
1
>>> l[True]
2
>>> l[False + True]
2
>>> l[False + 2*True]
3
>>> 
>>> l['0']
Traceback (most recent call last):
File "", line 1, in 
TypeError: list indices must be integers, not str
>>> type(True)

Когда я пыталсяl['0'] он напечатал ошибку, ожидаемую в индексах типа int, и это очевидно. Тогда даже тип'True' а также'False' являющийсяBoolИндексирование по списку работает нормально, автоматически преобразует его в тип int и выполняет операцию.

Пожалуйста, объясните, что происходит внутри. Я впервые задаю вопрос, поэтому, пожалуйста, прости меня за любую ошибку.

Ответы на вопрос(3)

Ваш ответ на вопрос