Ich habe mich gefragt, wie genau das tut, deep Arbeit in folgendem Zusammenhang:Python Wörterbuch deep
from copy import deepcopy
def copyExample:
self.myDict = {}
firstPosition = "First"
firstPositionContent = ["first", "primero"]
secondPosition = "Second"
secondPositionContent = ["second"]
self.myDict[firstPosition] = firstPositionContent
self.myDict[secondPosition] = secondPositionContent
return deepcopy(self.myDict)
def addExample(self):
copy = self.copyExample()
copy["Second"].add("segundo")
Hat sie den Verweis auf den Listen kehre ich im Wörterbuch haben? Oder funktioniert es wie erwartet und kopiere jede Liste in einer neuen Liste mit einer anderen Referenz?
Ich weiß, was eine tiefe Kopie ist (also gibt es keine Notwendigkeit, den Unterschied zwischen tief und flach zu erklären), aber ich frage mich, ob es funktioniert, wie ich es erwarte und daher die Instanzvariable nicht ändern, wenn ich benutze addExample()
.
Haben drucken Sie die beiden Wörterbücher, um zu sehen, wenn sie anders sind? Was hast du gesehen? Waren sie anders? Wenn ja, hat die Kopie eine neue Liste, zu der Sie ein Element hinzugefügt haben. –