Transmiterea variabilelor prin referință în Python

În Python, variabilele care conțin obiecte complexe sunt transmise prin referință. Aceasta înseamnă că toate modificările făcute într-o variabilă se vor reflecta în a doua. Și deși cu acest tip de atribuire a valorilor riscul de erori crește, pe de altă parte resursele de memorie a sistemului de operare sunt economisite semnificativ.

Să presupunem că avem două liste:

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

Deoarece variabilei lst2 i s-a atribuit valoarea lst1, acum în memoria operativă a computerului este stocată o singură listă, care este referită simultan de două variabile.

Să modificăm primul element lst2 și să afișăm prima listă în consolă:

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

Care va fi rezultatul executării următorului cod:

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

lst2 = lst1
lst2[0] = '!'

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

Care va fi rezultatul executării următorului cod:

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

lst2 = lst1
lst2[0] = '!'

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

Care va fi rezultatul executării următorului cod:

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

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

print(lst2)