Errore correzione hw2

P
Pietroos (6020 points)
4 8 11
asked Nov 3, 2021 in HW2 by Pietroos (6,020 points)
recategorized Nov 3, 2021 by Pietroos
Quando vado a caricare il codice, mi da errore su molti dei test (Gli stessi errori del codice precedente), anche se in locale funzionano tranquillamente, per caso c'è qualche problema con la VM?

Il file di errore non mi da molto aiuto, dato che su vari test che non passa mi fa vedere solo gli errori di alcuni. Inoltre uno degli errori che mi da è "Non dovete modificare la lista matches" ma la lista matches non la tocco, la uso solo un attimo assegnandola ad un altra variabile però facendo prima un'operazione su di essa.

2 Answers

Best answer
Exyss (21390 points)
1 2 79
answered Nov 3, 2021 by Exyss (21,390 points)
selected Nov 3, 2021 by Pietroos

In Python, così come in molti linguaggi, quando viene eseguito un assegnamento lista2 = lista1 ciò che viene realmente inserito all'interno della variabile lista2 è l'indirizzo di memoria in cui è locata la variabile lista1. Questa tipologia di assegnamento è chiamata "assignment by reference" (puoi guardare questo link se vuoi saperne di più).

Poiché ciò che viene "copiato" è l'indirizzo di memoria, lavorare sulla lista2 corrisponde a lavorare sulla lista1, poiché condividono lo stesso indirizzo e dunque sono letteralmente la stessa struttura di dati.

Per risolvere il problema ti basta eseguire lista2 = lista1.copy(), che andrà a creare una nuova lista con un nuovo indirizzo di memoria, copiando i valori di lista1

anaran (7090 points)
2 5 37
answered Nov 3, 2021 by anaran (7,090 points)
La lista matches dovresti proprio copiarla, e non assegnarla ad una variabile perché così facendo modificheresti entrambe,quando modifichi una delle due.