т.е. это не проблема языка. Это особенность хранения объектов в памяти и их ID, а не их значений Так вот я и говорю, что в словарях к ID плохо привязываться.
Там чот какой-то кэш от -5 по 256, поэтому все что свыше (257) уже в разные объекты кладется. Но почему с 300 прокатило - видимо разные питоны какие-то?
Первые 256 хранятся в памяти привентивно. Остальные числа создаются в виде отдельных объектов. А если в одну строку (интерпретируемый же язык) - то распознает, что можно сложить одинаковые в один объект. Потому что "все есть объект"