Reply to the Ernesto Arbitrio's message, wrote on 02/02/2021 at 11:38:
Ciao Gabriele, non ho capito molto bene il tuo problema, ma copy fa una copia shallow ovvero "only one level deep", se vuoi una copia completa considerando tutti i livelli di nesting devi usare deepcopy.

Ciao Ernesto.
Sì, hai capito bene, il problema è proprio quello, mi serve la copia di tutte le variabili annidate, incluse nel dizionario che copio.

Non conoscevo l'esistenza del modulo copy.
Ora grazie al tuo suggerimento, ho risolto:

>>> import copy
>>> d={}
>>> l=['io',22]
>>> d[1]=l
>>> c = copy.deepcopy(d)
>>> c
{1: ['io', 22]}
>>> d[1][1] = 23
>>> c
{1: ['io', 22]}

Perfetto, in questo caso il dizionario c è rimasto immutato.
Grazie ancora.
Gabriele.
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Reply via email to