Так как True
и False
являются экземплярами int
, в Python допустимо следующее:
>>> l = [0, 1, 2]
>>> l[False]
0
>>> l[True]
1
Я понимаю, почему это происходит. Тем не менее, я нахожу это поведение немного неожиданным и может привести к жестким ошибкам. Это, конечно, укусил меня пару раз.
Может ли кто-нибудь подумать о законном использовании индексирующих списков с True
или False
?