Ich habe Frage mit Methode Wörterbuch Kopie zum Beispiel können sagen, ich habePython Wörterbuch Kopiermethode
>> d = {'pears': 200, 'apples': 400, 'oranges': 500, 'bananas': 300}
>> copy_dict = d.copy()
Nun, wenn ich id überprüfen die sowohl d und copy_dict, die beide unterschiedlich sind
>> id(d)
o/p = 140634603873176
>> id(copy_dict)
o/p = 140634603821328
aber Wenn ich die ID von Objekten in den Wörterbüchern überprüfe, sind sie gleichbedeutend id (d ['Birnen]])
>> id(d['pears'])
o/p = 140634603971648
>> id (copy_dict['pears'])
o/p = 140634603971648
Alle Objekte im neuen dict sind Verweise auf dieselben Objekte wie das ursprüngliche dict.
Wenn ich jetzt den Wert des Schlüssels 'Birnen' in d ändere, gibt es keine Änderung in demselben Schlüssel in copy_dict und wenn ich die IDs jetzt überprüfe, id (d ['Birnen'])! = Id (copy_dict [ ‚Birnen‘])
>> d['pears'] = 700
>> print copy_dict['pears']
o/p = 200
Meine Frage ist, ob die Objekte in den neuen dict Verweise auf die gleichen Objekte wie das Original dict sind, warum der Wert des neuen dict ist nicht ändern, wenn der Wert in der ursprünglichen Wörterbuch wurde geändert und wie hat Python sofort die IDs geändert, sobald sich der Wert geändert hat?
Können Sie mir bitte eine vollständige Beschreibung des Unterschieds zwischen tiefer und seichter Kopie geben?
Mögliche Duplikate von [Understanding dict.copy() - flach oder tief?] (Http://stackoverflow.com/questions/3975376/understanding-dict-copy-shallow-oder-deep) – Backtrack