X Tutup
Skip to content

Latest commit

 

History

History
98 lines (74 loc) · 2.94 KB

File metadata and controls

98 lines (74 loc) · 2.94 KB
title Módulo Copy de Python - Hoja de Trucos de Python
description El Módulo Copy ofrece funciones para copiar elementos de listas, objetos, arrays, etc. Permite crear copias superficiales (shallow) y copias profundas (deep).
Módulo Copy de Python

El módulo Copy es un conjunto de funciones relacionadas con la copia de diferentes elementos de una lista, objetos, arrays, etc. Se puede utilizar para crear copias superficiales (shallow copies) así como copias profundas (deep copies).

De la documentación de Python 3 Las sentencias de asignación en Python no copian objetos, crean enlaces entre un objetivo y un objeto. Para colecciones que son mutables o contienen elementos mutables, a veces se necesita una copia para poder cambiar una copia sin cambiar la otra. Este módulo proporciona operaciones genéricas de copia superficial (shallow) y profunda (deep).

Operaciones de copia superficial (Shallow copy operations)

Una copia superficial construye un nuevo objeto compuesto e inserta en él (en la medida de lo posible) referencias a los objetos encontrados en el original.

copy.copy(x) Devuelve una copia superficial de x.

import copy
a = [[1],[2],[3]]
# Crear copia superficial (las listas anidadas todavía se referencian)
b = copy.copy(a)

a
[[1], [2], [3]]
b
[[1], [2], [3]]

Sin importar el módulo copy no se puede usar

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'copy' is not defined

Operaciones de copia profunda (Deep copy operations)

Una copia profunda construye un nuevo objeto compuesto e inserta en él, recursivamente, copias de los objetos encontrados en el original.

copy.deepcopy(x[, memo]) Devuelve una copia profunda de x.

import copy
a = [[1],[2],[3]]
# Crear copia profunda (copia completamente independiente)
b = copy.deepcopy(a)

# Modificar el original
a[0][0] = 0
a[1] = None

a
[[0], None, [3]]
b
[[1], [2], [3]]

Enlaces relevantes

  • Cheatsheet: Conceptos Básicos de OOP
  • Cheatsheet: Listas y Tuplas
  • Cheatsheet: Diccionarios
  • Blog: Tipos de Datos de Python
  • object()
  • list()
  • dict()
  • slice()
X Tutup