Indexing on list with boolean values works fine. Though the index should be an integer.
Following is what I tried in console:
>>> 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'>
When I tried l['0']
it printed error that int type expected in indices and that is obvious.
Then, even the type of 'True'
and 'False'
being Bool
, indexing on the list works fine and automatically converts it to int type and performs the operation.
Please explain what is going on internally. I am posting question for the first time, so please forgive me for any mistake.