Middle+
Opowiedz o module copy w Pythonie. Jaka jest różnica między copy a deepcopy?
sobes.tech AI
Odpowiedź od AI
Moduł copy w Pythonie zapewnia funkcje do tworzenia kopii obiektów. Główne funkcje:
copy.copy(obj)— kopia płytka.copy.deepcopy(obj)— kopia głęboka.
Różnica między copy a deepcopy:
- Kopia płytka tworzy nowy obiekt, ale obiekty zagnieżdżone w nim nie są kopiowane, tylko odwołują się do tych samych obiektów co w oryginale.
- Kopia głęboka rekurencyjnie kopiuje wszystkie obiekty zagnieżdżone, tworząc całkowicie niezależną kopię.
Przykład:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
original[1][0] = 'zmienione'
print(shallow) # [1, ['zmienione', 3]] — zagnieżdżona lista się zmieniła
print(deep) # [1, [2, 3]] — kopia głęboka się nie zmieniła