#ВопросСподвохом — ответ от нашего ментора по Python🐍



Объясняю — в python3 тип bool реализован как подкласс инта, поэтому хеши True и 1 (а также False и 0) cовпадают. Для словаря, который использует хеш-функцию как индекс это одинаковые объекты.



Можно пойти еще дальше и вспомнить, как считаются хеши для float:

>>> a = {True : "1", 1 : "one", 1.0 : "double one"}

>>> print(a)

{True: 'double one'}