Junior — Middle
Explique o que é a cópia superficial de objetos em Python e como ela difere da cópia profunda.
sobes.tech IA
Resposta da IA
A cópia superficial (shallow copy) em Python cria um novo objeto, mas os objetos aninhados dentro dele não são copiados, apenas as referências a eles. Ou seja, se dentro do objeto houver estruturas mutáveis aninhadas (por exemplo, listas, dicionários), elas serão compartilhadas entre o original e a cópia.
A cópia profunda (deep copy) cria um novo objeto e copia recursivamente todos os objetos aninhados, criando uma cópia totalmente independente.
Exemplo:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
shallow[1].append(4)
print(original) # Vai mostrar: [1, [2, 3, 4]] — a lista aninhada mudou também no original
print(deep) # Vai mostrar: [1, [2, 3]] — a cópia profunda não mudou
Portanto, a cópia superficial é adequada quando os objetos aninhados não mudam, e a cópia profunda quando é necessária independência total da cópia em relação ao original.