#ВопросСподвохом — ответ от нашего ментора по Python🐍
Объясняю — в python3 тип bool реализован как подкласс инта, поэтому хеши True и 1 (а также False и 0) cовпадают. Для словаря, который использует хеш-функцию как индекс это одинаковые объекты.
Можно пойти еще дальше и вспомнить, как считаются хеши для float:
>>> a = {True : "1", 1 : "one", 1.0 : "double one"}
>>> print(a)
{True: 'double one'}
Объясняю — в python3 тип bool реализован как подкласс инта, поэтому хеши True и 1 (а также False и 0) cовпадают. Для словаря, который использует хеш-функцию как индекс это одинаковые объекты.
Можно пойти еще дальше и вспомнить, как считаются хеши для float:
>>> a = {True : "1", 1 : "one", 1.0 : "double one"}
>>> print(a)
{True: 'double one'}