Prosleđivanje promenljivih po referenci u Python-u

U Python-u, promenljive koje sadrže složene objekte prosleđuju se po referenci. Ovo znači da će sve izmene napravljene u jednoj promenljivoj biti vidljive u drugoj. Iako ovaj tip dodele vrednosti povećava rizik od grešaka, on značajno štedi resurse sistemske memorije operativnog sistema.

Pretpostavimo da imamo dve liste:

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

Pošto je promenljivoj lst2 dodeljena vrednost lst1, sada se u radnoj memoriji računara nalazi jedna lista, na koju istovremeno pokazuju dve promenljive.

Hajde da promenimo prvi element lst2 i ispišemo prvu listu u konzolu:

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

Kakav će biti rezultat izvršavanja sledećeg koda:

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

lst2 = lst1
lst2[0] = '!'

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

Kakav će biti rezultat izvršavanja sledećeg koda:

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

lst2 = lst1
lst2[0] = '!'

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

Kakav će biti rezultat izvršavanja sledećeg koda:

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

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

print(lst2)