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:
lst1 = [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:
lst2[0] = '!'
print(lst1) # stamperà ['!', 2, 3, 4, 5]
Quale sarà il risultato dell'esecuzione del seguente codice:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Quale sarà il risultato dell'esecuzione del seguente codice:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Quale sarà il risultato dell'esecuzione del seguente codice:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)