Sobes.tech
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.