Python · Intermediário · Português · Técnico
cópia rasa e profunda
A cópia rasa duplica só o contêiner externo e reaproveita os objetos internos; a profunda, via copy.deepcopy, duplica tudo recursivamente e gera estruturas independentes.
Onde usar
Aparece quando alterar a cópia de uma lista de listas muda o original. Em code review, pergunta-se se list(x) ou x[:] bastam ou se é preciso deepcopy.
Em código
import copy
orig = [[1], [2]]
rasa = orig.copy()
prof = copy.deepcopy(orig)
rasa[0].append(9)
print(orig) # [[1, 9], [2]]
print(prof) # [[1], [2]]Exemplos
Foi cópia rasa: a lista de dentro continuou compartilhada.
Pra isolar de verdade, faz uma cópia profunda com deepcopy.
Cuidado
Não presuma que lista.copy() isola objetos aninhados: só a camada de fora é nova.
Sinônimos
shallow e deep copy