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.

Aggiungere lista ad un dizionario

G
Gianluca98 (810 points)
3 14 25
in Es2 by (810 points)
Salve, sto facendo il secondo esercizio dell'hw2 e non so perché ma quando vado ad aggiungere una lista (come valore) ad un dizionario la aggiunge però vuota, anche se questa non lo è. Come mai?
566 views

1 Answer

Auron (15880 points)
51 126 194
by (15.9k points)
Come crei il dizionario?
G
Gianluca98 (810 points)
3 14 25
by (810 points)
Ho provato sia con dizionario[chiave]=lista che con dizionario.setdefault(chiave,lista) ma la mette sempre vuota.
Auron (15880 points)
51 126 194
by (15.9k points)
Strano, la prima dovrebbe essere molto semplice... Sicuro che in qualche punto non azzeri la lista?
Prova a fare dizionario[chiave]=lista.copy() e dimmi se cambia qualcosa (dopo che ti sei assicurato che la lista non si svuoti in qualche punto: usa le print)
G
Gianluca98 (810 points)
3 14 25
by (810 points)
Si ma infatti ho usato le print per assicurarmi che fino alla riga precedente la lista è effettivamente non vuota. Ad ogni modo proverò come dici.
Auron (15880 points)
51 126 194
by (15.9k points)
Il .copy() a volte rischia di farti impazzire, se è quello sappi che ci sono passato in prima persona :)
In altro caso risulta un po' più difficile aiutarti :(
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
La lista subito prima è piena.
Sicuramente hai controllato che dizio[chiave] sia piena subito dopo.
ma forse più avanti la svuoti
Se ne fai una copia come suggerito sopra dovresti risolvere