# Передача переменных по ссылке в 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)`
← →
↑