Python Bool and int porównanie i indeksowanie na liście z wartościami boolowskimi

Indeksowanie na liście z wartościami boolowskimi działa dobrze. Chociaż indeks powinien być liczbą całkowitą.

Oto, co próbowałem w konsoli:

>>> 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 "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
>>> type(True)
<type 'bool'>

Kiedy próbowałeml['0'] wydrukował błąd, którego typ int oczekiwał w indeksach i to jest oczywiste. Wtedy nawet typ'True' i'False' istotaBool, indeksowanie na liście działa dobrze i automatycznie konwertuje go na typ int i wykonuje operację.

Proszę wyjaśnić, co się dzieje wewnętrznie. Po raz pierwszy publikuję pytanie, więc proszę wybacz mi każdy błąd.

questionAnswers(3)

yourAnswerToTheQuestion