Предаване на променливи по референция в Python

В Python променливи, съдържащи сложни обекти, се предават по референция. Това означава, че всички промени, направени в една променлива, ще се отразят на втората. И въпреки че при този тип присвояване на стойности се увеличава рискът от възникване на грешка, това значително спестява ресурси на оперативната памет на ОС.

Нека имаме два списъка:

pythonlst1 = [1, 2, 3, 4, 5]
lst2 = lst1

Тъй като на променливата lst2 беше присвоена стойността lst1, сега в оперативната памет на компютъра се съхранява един списък, към който едновременно сочат две променливи.

Нека променим първия елемент lst2 и изведем първия списък в конзолата:

pythonlst2[0] = '!'
print(lst1) # ще изведе ['!', 2, 3, 4, 5]
Задание 1

Какъв ще бъде резултатът от изпълнението на следния код:

pythonlst1 = [1, 2, 3, 4, 5]

lst2 = lst1
lst2[0] = '!'

print(lst1)
Задание 2

Какъв ще бъде резултатът от изпълнението на следния код:

pythonlst1 = [1, 2, 3, 4, 5]

lst2 = lst1
lst2[0] = '!'

print(lst2)
Задание 3

Какъв ще бъде резултатът от изпълнението на следния код:

pythonlst1 = ['a', 'b', 'c', 'd']

lst2 = lst1
lst3 = 'e'
lst2[2] = lst3

print(lst2)