Это потому, что 1 является неизменяемым типом данных в python, то есть вы не можете изменить его значение.
Чтобы он работал как указатель, вам нужен изменяемый тип данных в качестве хранилища, что вы можете сделать самостоятельно с определением класса
class Mutable(object):
pass
a = Mutable()
a.value = 1
d = {'a':a}
a.value = 3
d['a'].value
равняется 3 в этой точке.
Если вы действительно хотите, вы можете перегрузить операторы и т. Д., Чтобы получить ту же семантику, что и для обычных целых чисел, но я бы посоветовал вам вместо этого взглянуть на некоторые шаблоны функционального программирования, чтобы понять, почему неизменные типы хороши. 1009 *