GeeksforGeeks (Italiano)

In Python, le istruzioni di assegnazione non copiano gli oggetti, creano collegamenti tra un target e un oggetto. Quando usiamo= l’operatore utente pensa che questo crei un nuovo oggetto; beh, non lo fa. Crea solo una nuova variabile che condivide il riferimento dell’oggetto originale. A volte un utente vuole lavorare con oggetti mutabili, per farlo l’utente cerca un modo per creare “copie reali” o “cloni” di questi oggetti., Oppure, a volte un utente desidera copie che l’utente può modificare senza modificare automaticamente l’originale allo stesso tempo, per farlo creiamo copie di oggetti.

A volte è necessaria una copia in modo da poter cambiare una copia senza cambiare l’altra. In Python, ci sono due modi per creare copie:

  • Deep copy
  • Shallow copy

Per fare queste copie, usiamo il modulocopy. Usiamocopy modulo per operazioni di copia superficiale e profonda.,>

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



Nel codice di cui sopra, il copy() restituisce la copia superficiale della lista e deepcopy() restituire una copia profonda di elenco.,

Deep copy

Deep copy è un processo in cui il processo di copia avviene in modo ricorsivo. Significa prima costruire un nuovo oggetto di raccolta e quindi popolarlo ricorsivamente con copie degli oggetti figlio trovati nell’originale. In caso di copia profonda, una copia dell’oggetto viene copiata in un altro oggetto. Significa che le modifiche apportate a una copia dell’oggetto non si riflettono nell’oggetto originale. In python, questo è implementato usando la funzione ” deepcopy ()”.,



Uscita:

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 

Nell’esempio precedente, il cambiamento nella lista non hanno effetto in altri elenchi, indicando l’elenco è profondo copiato.

Copia superficiale

Una copia superficiale significa costruire un nuovo oggetto di raccolta e quindi popolarlo con riferimenti agli oggetti figlio trovati nell’originale. Il processo di copia non ricorre e quindi non creerà copie degli oggetti figlio stessi., In caso di copia superficiale, un riferimento di oggetto viene copiato in un altro oggetto. Significa che tutte le modifiche apportate a una copia dell’oggetto si riflettono nell’oggetto originale. In python, questo è implementato usando la funzione ” copy ()”.



Uscita:

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

Nell’esempio precedente, la modifica apportata nell’elenco ha effetto in un altro elenco, indicando l’elenco è poco profondo copiato.,

Punti importanti:
La differenza tra la copia superficiale e profonda è rilevante solo per gli oggetti composti (oggetti che contengono altri oggetti, come elenchi o istanze di classe):

  • Una copia superficiale costruisce un nuovo oggetto composto e quindi (per quanto possibile) inserisce riferimenti agli oggetti trovati nell’originale.
  • Una copia profonda costruisce un nuovo oggetto composto e quindi, ricorsivamente, inserisce copie degli oggetti trovati nell’originale.

Attenzione geek!, Rafforza le tue basi con il corso Python Programming Foundation e impara le basi.

Per cominciare, i preparativi per l’intervista migliorano i concetti delle strutture dati con il corso Python DS.

Tag articolo:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *