Ho domanda con metodo dizionario copia ad esempio Diciamo che hoPython Dizionario metodo di copia
>> d = {'pears': 200, 'apples': 400, 'oranges': 500, 'bananas': 300}
>> copy_dict = d.copy()
Ora se controllo id sia d ed copy_dict, entrambi sono diversi
>> id(d)
o/p = 140634603873176
>> id(copy_dict)
o/p = 140634603821328
ma se controllo l'id degli oggetti nei dizionari, sono identici id (d ['pears']) = id (copy_dict ['pears'])
>> id(d['pears'])
o/p = 140634603971648
>> id (copy_dict['pears'])
o/p = 140634603971648
Tutti gli oggetti nel nuovo dict sono riferimenti agli stessi oggetti del dettato originale.
Ora se cambio il valore della chiave "pere" in d, non c'è alcun cambiamento nella stessa chiave in copy_dict e quando controllo l'id adesso, id (d ['pears'])! = Id (copy_dict [ 'pere'])
>> d['pears'] = 700
>> print copy_dict['pears']
o/p = 200
la mia domanda è se gli oggetti nei nuovi dict sono riferimenti agli stessi oggetti del dict originale perché è il valore della nuova dict non cambia quando il valore in originale il dizionario è stato modificato e in che modo Python ha modificato immediatamente l'ID non appena ha visto il valore modificato?
Può per favore darmi una descrizione completa della differenza tra copia profonda e superficiale?
Possibile duplicato di [Understanding dict.copy() - superficiale o profondo?] (Http://stackoverflow.com/questions/3975376/understanding-dict-copy-shallow-or-deep) – Backtrack