Python Copia: Superficiale e Profonda

In python ci sono i cosiddetti ‘deep copy’ e ‘copia superficiale’, per esempio:

import copyx = copy.copy(y) # shallow copy of yx = copy.deepcopy(y) # deep copy of y

La differenza tra profonde, la copia è rilevante solo per il compound objects (oggetti che contengono altri oggetti, come la `lista`, `dict`, `set`, `tuple` e `bytearray` o istanze di classi).

– Una copia superficiale costruisce un nuovo oggetto composto e quindi (nella misura possibile

) inserisce *gli stessi oggetti * in esso contenuti nell’originale

.,

– Una copia profonda costruisce un nuovo oggetto composto e quindi, ricorsivamente,

inserisce *copie* in esso degli oggetti trovati nell’originale.

Note:

1. Per ‘list’, ‘dict`, `set` e `bytearray’, ‘ copy.copia `è equivalente a ‘ lista.copia’, ‘ dict.copia’, ‘ impostato.copia ‘ e ‘ bytearray.copia ‘ rispettivamente.

Cioè, tutto il metodo di classe `copy` di `list`, `dict`, `set` e `bytearray` sono copia superficiale.

2. Shallow copy è un algoritmo di complessità ‘O (N) `in cui` N’ è la lunghezza dell’oggetto composto originale., La copia superficiale deve allocare almeno la dimensione di` N `del tipo` PyBoject* ‘ in memoria e loop da assegnare.

3. Deep copy è un algoritmo di complessità “O (NM)” in cui ” N “è la lunghezza dell’oggetto composto originale e” M ” è la lunghezza media (in termini di oggetti non composti) degli elementi nel composto.

4. La copia superficiale e profonda per oggetti non composti è la stessa, ad esempio `int`, `float`, `str` ecc.

5. `elenco.copy ‘è lo stesso che usare slice, cioè’ a ‘

Lascia un commento

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