Передача переменных по ссылке в Python
В Python переменные, содержащие сложные объекты передаются по ссылке. Это значит, все изменения, сделанные в одной переменной отобразятся на второй. И хотя при таком типе присваивания значений увеличивается риск появления ошибки, зато значительно экономятся ресурсы системной памяти ОС.
Пусть у нас есть два списка:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Поскольку переменной lst2
присвоили
значение lst1
, теперь в оперативной
памяти компьютера хранится один список,
на который одновременно ссылаются две
переменные.
Давайте изменим первый элемент lst2
и выведем первый список в консоль:
lst2[0] = '!'
print(lst1) # выведет ['!', 2, 3, 4, 5]
Каким будет результат выполнения следующего кода:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Каким будет результат выполнения следующего кода:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Каким будет результат выполнения следующего кода:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)