Mainīgo nodošana pa referenci Python

Python mainīgie, kas satur sarežģītus objektus tiek nodoti pa referenci. Tas nozīmē, visas izmaiņas, kas veiktas vienā mainīgajā tiks atspoguļotas otrajā. Un lai gan ar šāda veida vērtību piešķiršanu palielinās kļūdu rašanās risks, taču ievērojami ietaupīti operētājsistēmas atmiņas resursi.

Pieņemsim, ka mums ir divi saraksti:

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

Tā kā mainīgajam lst2 tika piešķirta vērtība lst1, tagad datora operatīvajā atmiņā glabājas viens saraksts, uz kuru vienlaikus norāda divi mainīgie.

Mainīsim pirmo elementu lst2 un izvadīsim pirmo sarakstu konsolē:

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

Kāds būs šāda koda izpildes rezultāts:

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

lst2 = lst1
lst2[0] = '!'

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

Kāds būs šāda koda izpildes rezultāts:

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

lst2 = lst1
lst2[0] = '!'

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

Kāds būs šāda koda izpildes rezultāts:

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

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

print(lst2)