Método copy() de lista en Python

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.

Página de referencia: resume la firma y el uso de un método concreto. El valor está en el patrón: qué recibe, qué devuelve y en qué situación lo usarías.

Copia el ejemplo al editor, cámbiale los argumentos y comprueba la salida.


Sintaxis del método copy() en Python

La sintaxis básica del método copy() es la siguiente:

Ejemplo

    lista_original = ["a", "b", "c"]

copia = lista_original.copy()
print(copia)
  
Abrir en editor

Aquí tienes un ejemplo para entender mejor cómo funciona:

Ejemplo

    # 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)
  
Abrir en editor

La salida de este código será :

Ejemplo

    # 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]]
print(ccopia_lista)
  
Abrir en editor

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:

Ejemplo

    # 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]]
print(ccopia_lista)
  

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.


Practica Método copy() de lista en Python en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: La sintaxis básica del método

La sintaxis básica del método copy() es la siguiente.

Ejemplo

    lista_original = ["a", "b", "c"]

copia = lista_original.copy()
print(copia)
  
Abrir en editor

Ejercicio: Usar print()

Aquí tienes un ejemplo para entender mejor cómo funciona.

Ejemplo

    # 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)
  
Abrir en editor

Ejercicio: La salida de este código será

La salida de este código será.

Ejemplo

    # 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]]
print(ccopia_lista)
  
Abrir en editor

Cómo practicar

1. Pulsa Ejecutar en el bloque de código.
2. Modifica un valor o argumento.
3. Vuelve a ejecutar y observa la consola.