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
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a