Przekazywanie zmiennych przez referencję w Pythonie

W Pythonie zmienne zawierające złożone obiekty są przekazywane przez referencję. Oznacza to, że wszystkie zmiany dokonane w jednej zmiennej odzwierciedlą się w drugiej. I chociaż przy takim typie przypisywania wartości wzrasta ryzyko pojawienia się błędu, to jednak znacząco oszczędzane są zasoby pamięci systemowej OS.

Załóżmy, że mamy dwie listy:

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

Ponieważ zmiennej lst2 przypisano wartość lst1, teraz w pamięci operacyjnej komputera przechowywana jest jedna lista, na którą jednocześnie wskazują dwie zmienne.

Zmieńmy pierwszy element lst2 i wypiszmy pierwszą listę do konsoli:

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

Jaki będzie wynik wykonania następującego kodu:

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

lst2 = lst1
lst2[0] = '!'

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

Jaki będzie wynik wykonania następującego kodu:

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

lst2 = lst1
lst2[0] = '!'

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

Jaki będzie wynik wykonania następującego kodu:

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

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

print(lst2)