El método copy() en Python se utiliza para crear una copia superficial (shallow copy) de una lista. Esto significa que se crea una nueva lista que contiene los mismos elementos que la lista original, pero no se copian los elementos internos de la lista original. En otras palabras, la copia es superficial en el sentido de que ambos, la lista original y la copia, hacen referencia a los mismos objetos internos.
Sintaxis del método copy() en Python
La sintaxis básica del método copy() es la siguiente:
copia = lista_original.copy()
Aquí tienes un ejemplo para entender mejor cómo funciona:
# Crear una lista original lista_original = [1, 2, 3, [4, 5]] # Copiar la lista utilizando copy() copia = lista_original.copy() # Modificar un elemento en la copia copia[0] = 100 # Modificar un elemento dentro de la lista interna en la copia copia[3][0] = 400 # Imprimir la lista original y la copia print("Lista Original:", lista_original) print("Copia de la Lista:", copia)
La salida de este código será:
# Lista Original: [1, 2, 3, [400, 5]] lista_original = [1, 2, 3, [400, 5]] # Copia de la Lista: [100, 2, 3, [400, 5]] copia_lista = [100, 2, 3, [400, 5]]
Como puedes ver, cuando modificamos un elemento en la copia de la lista (copia[0]), no afecta a la lista original. Sin embargo, cuando modificamos un elemento dentro de la lista interna en la copia (copia[3][0]), también afecta a la lista original porque ambas hacen referencia a la misma lista interna [4, 5].
Crear una copia profunda (deep copy)
Si necesitas crear una copia profunda (deep copy) en la que se copien todos los elementos internos de manera independiente, puedes usar el módulo copy de la siguiente manera:
import copy copia_profunda = copy.deepcopy(lista_original)
Con copy.deepcopy(), se crea una copia profunda en la que todos los elementos internos se copian de manera independiente, evitando así la modificación de la lista original cuando se modifica la copia.
- Tutorial de Listas en Python