Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Errore correzione hw2

P
Pietroos (6020 points)
5 8 11
in HW2 by (6.0k points)
recategorized by
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.
439 views
closed

2 Answers

Best answer
Exyss (21510 points)
1 2 79
by (21.5k points)
selected by

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)
3 5 37
by (7.1k points)
La lista matches dovresti proprio copiarla, e non assegnarla ad una variabile perché così facendo modificheresti entrambe,quando modifichi una delle due.