Пренос на променливи по референца во 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)