[Python] Confronto dizionari.

Federico Fissore federico a fsfe.org
Mar 2 Feb 2021 11:44:37 CET


Gabriele Battaglia wrote on 02/02/21 11:28:
> Che cosa mi sfugge? d.copy non dovrebbe creare un dizionario nuovo, 
> svincolato dai riferimenti alle variabili, l, contenuti nell'origine, d?
> 

`dict.copy` fa una "shallow copy", cioè crea un nuovo dizionario e ci 
mette dentro chiavi e valori dell'originale, senza copiarle

il riferimento alla lista ['io', 20] è quindi condiviso da entrambe le 
"copie": un cambiamento fatto su un dizionario si riflette sui contenuti 
di quello copiato

se vuoi proprio copiare, usa deepcopy [0]
ti consiglio però di usare un approccio diverso: la tua funzione prende 
il dizionario in input e torna True/False a seconda che l'abbia 
modificato o meno

federico

[0] https://docs.python.org/3/library/copy.html#copy.deepcopy


Maggiori informazioni sulla lista Python