mi chiedevo a come funziona esattamente deepcopy nel contesto seguente:dizionario Python deepcopy
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")
lo fa tornare il riferimento alle liste che ho nel dizionario? Oppure funziona come mi aspetto e copio ogni lista in una nuova lista con un riferimento diverso?
So che cos'è una copia profonda (quindi non c'è bisogno di spiegare la differenza tra profondità e profondità), ma mi chiedo se funzioni come mi aspetto che faccia e quindi non cambio la variabile di istanza quando uso addExample()
.
Hai stampare i due dizionari per vedere se sono diversi? Che cosa hai visto? Erano diversi? Se è così, la copia ha una nuova lista a cui hai aggiunto un elemento. –