Pripeljevanje spremenljivk po referenci v Pythonu

V Pythonu se spremenljivke, ki vsebujejo kompleksne objekte, pripeljejo po referenci. To pomeni, da se vse spremembe, narejene v eni spremenljivki, odrazijo na drugi. In čeprav se s to vrsto dodeljevanja vrednosti poveča tveganje za napake, se s tem znatno prihrani v sistemskem pomnilniku OS.

Recimo, da imamo dva seznama:

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

Ker smo spremenljivki lst2 dodelili vrednost lst1, je zdaj v delovnem pomnilniku računalnika shranjen en seznam, na katerega hkrati kažeta dve spremenljivki.

Spremenimo prvi element lst2 in izpišimo prvi seznam v konzolo:

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

Kakšen bo rezultat izvajanja naslednje kode:

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

lst2 = lst1
lst2[0] = '!'

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

Kakšen bo rezultat izvajanja naslednje kode:

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

lst2 = lst1
lst2[0] = '!'

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

Kakšen bo rezultat izvajanja naslednje kode:

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

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

print(lst2)