ブール値を使用したリストのインデックス作成は正常に機能します。インデックスは整数でなければなりませんが。
コンソールで試したのは次のとおりです。
>>> 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'>
試しl['0']
てみると、 int 型がインデックスに期待されるというエラーが出力されましたが、それは明らかです。すると、リストの型も'True'
being'False'
もBool
正常にインデックス化され、自動的に int 型に変換されて操作が実行されます。
内部で何が起こっているのか説明してください。初めて質問を投稿するので、間違いがあればお許しください。