GeeksforGeeks (Português)

In Python, Assignment statements do not copy objects, they create bindings between a target and an object. Quando usamos = o usuário do operador pensa que isso cria um novo objeto; bem, ele não cria. ele só cria uma nova variável que compartilha a referência do objeto original. Às vezes um usuário quer trabalhar com objetos mutáveis, a fim de fazer que o usuário procura uma maneira de criar “cópias reais” ou “clones” desses objetos., Ou, às vezes, um usuário quer cópias que o usuário pode modificar sem modificar automaticamente o original ao mesmo tempo, a fim de fazer isso nós criamos cópias de objetos.

uma cópia às vezes é necessária para que uma possa mudar uma cópia sem mudar a outra. Em Python, existem duas maneiras de criar cópias:

  • cópia profunda
  • cópia superficial

para fazer esta cópia, usamos copy módulo. Nós usamoscopy módulo para operações de cópia superficial e profunda.,>

li2 = copy.copy(li1)
li3 = copy.deepcopy(li1)



No código acima, o copy() retorna a cópia superficial da lista e deepcopy() retornar um profundo cópia da lista.,

cópia profunda

cópia profunda é um processo no qual o processo de cópia ocorre recursivamente. Significa primeiro construir um novo objeto de coleção e depois populá-lo recursivamente com cópias dos objetos-filhos encontrados no original. Em caso de cópia profunda, uma cópia do objeto é copiada em outro objeto. Significa que quaisquer alterações feitas a uma cópia do objeto não refletem no objeto original. Em python, isso é implementado usando a função ” deepcopy ()”.,



Saída:

The original elements before deep copying1 2 4 The new list of elements after deep copying 1 2 4 The original elements after deep copying1 2 4 

No exemplo acima, a alteração feita na lista não fez efeito em outras listas, indicando a lista é profundo copiados.

cópia Rasa

uma cópia rasa significa construir um novo objecto de colecção e, em seguida, populá-lo com referências aos objectos-filhos encontrados no original. O processo de cópia não se repete e, portanto, não irá criar cópias dos próprios objectos-filhos., Em caso de cópia rasa, uma referência de objeto é copiada em outro objeto. Significa que quaisquer alterações feitas a uma cópia de objeto refletem no objeto original. Em python, isso é implementado usando a função ” copy ()”.



Saída:

The original elements before shallow copying1 2 4 The original elements after shallow copying1 2 4 

No exemplo acima, a alteração feita na lista fez efeito em outra lista, indicando a lista é raso copiados.,

Pontos Importantes:
A diferença entre superficial e profundo, a cópia só é relevante para objetos compostos (objetos que contêm outros objetos, como listas ou instâncias de classe):

  • Uma cópia superficial constrói um novo objeto composto e, em seguida, (na medida do possível) insere referências para os objetos encontrados no original.
  • uma cópia profunda constrói um novo objeto composto e então, recursivamente, insere cópias nele dos objetos encontrados no original.

Attention geek!, Fortaleça suas fundações com o curso Python Programming Foundation e aprenda o básico.

para começar, os seus preparativos para a entrevista melhoram os conceitos das estruturas de dados com o curso Python DS.

Article Tags:

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *