Вот пример:Python: Когда две переменные указывают на один и тот же объект в памяти?
l = [1, 5, 9, 3]
h = l
h[0], h[2] = h[2], h[0]
print(h) # [9, 5, 1, 3]
print(l) # [9, 5, 1, 3]
h = h*2
print(h) # [9, 5, 1, 3, 9, 5, 1, 3]
print(l) # [9, 5, 1, 3]
Моего понимание было, что вызов установка h = l
бы просто указать h
в том же пункте в памяти, что l
указывали на. Так почему же в последних 3 строках, h
и l
не дают одинаковых результатов?
Вы изменяете то, что указывает 'h', когда вы снова назначаете' h'. – user2357112
Это зависит от того, изменено ли значение переменной. Списки являются изменяемыми, целые - нет. –
Установка 'h = l' указывает' h' на 'l'. Но тогда установка 'h = h * 2' указывает' h' на что-то другое. – BrenBarn