Passaggio di variabili per riferimento in Python

In Python, le variabili che contengono oggetti complessi vengono passate per riferimento. Questo significa che tutte le modifiche apportate a una variabile si rifletteranno sulla seconda. E sebbene con questo tipo di assegnazione di valori aumenti il rischio di errori, d'altra parte si risparmiano significativamente le risorse di memoria di sistema del SO.

Supponiamo di avere due liste:

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

Poiché alla variabile lst2 è stato assegnato il valore di lst1, ora nella memoria RAM del computer è memorizzata una sola lista, a cui fanno riferimento due variabili contemporaneamente.

Modifichiamo il primo elemento di lst2 e stampiamo la prima lista nella console:

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

Quale sarà il risultato dell'esecuzione del seguente codice:

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

lst2 = lst1
lst2[0] = '!'

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

Quale sarà il risultato dell'esecuzione del seguente codice:

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

lst2 = lst1
lst2[0] = '!'

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

Quale sarà il risultato dell'esecuzione del seguente codice:

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

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

print(lst2)