Python Copy: Shallow and Deep

en python tenemos los llamados ‘deep copy’ y ‘shallow copy’, por ejemplo:

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

la diferencia entre la copia superficial y profunda solo es relevante para objetos compuestos (objetos que contienen otros objetos, como `list`, `dict`, `set`, `tuple` y `ByteArray` o instancias de clase).

– una copia superficial construye un nuevo objeto compuesto y luego (en la medida

posible) inserta *los mismos objetos* en él que contiene el

original.,

– una copia profunda construye un nuevo objeto compuesto y luego, recursivamente,

inserta *copias* en él de los objetos encontrados en el original.

Notas:

1. Para ‘list`, `dict`, `set` y `bytearray’, ‘ copy.copiar `es equivalente a ‘ lista.recibido, dict.copiado, listo.copie ‘ y ‘ bytearray.copiado, respectivamente.

Es decir, todos los métodos de clase ‘copy `De` list`,` dict`,` set `y` bytearray’ son copias superficiales.

2. La copia superficial es un algoritmo de complejidad ‘O (N) `donde` N’ es la longitud del objeto compuesto original., La copia superficial necesita asignar al menos el tamaño de ‘N` del tipo’ PyBoject* ‘ en memoria y bucle para asignar.

3. La copia profunda es un algoritmo de complejidad `o (NM) `donde` N `es la longitud del objeto compuesto original, y` M ‘ es la longitud promedio (en términos de objetos no compuestos) de los elementos en el compuesto.

4. La copia superficial y profunda para objetos no compuestos es la misma, por ejemplo, `int`, `float`, ‘str’, etc.

5. `lista.copiar ‘ es lo mismo que usar slice, es decir, `a`

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *