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

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

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.
443 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.