Copiar una lista en Python

En Python, puedes copiar una lista de varias formas. Es importante entender que copiar una lista no implica simplemente asignarla a una nueva variable utilizando el operador de asignación ( = ), ya que esto solo crea una referencia a la lista original, en lugar de una copia independiente. A continuación, te presento algunas formas de copiar una lista en Python:

En Copiar una lista en Python verás el concepto explicado en lenguaje claro y un ejemplo que puedes ejecutar en el editor de The Data Schools.

Modifica el código del ejemplo antes de pasar a la siguiente lección: la experimentación fija mejor el aprendizaje que leer pasivamente.

Copiar listas con el método copy() en Python

Puedes usar el método copy() para crear una copia superficial (shallow copy) de la lista original. Una copia superficial crea una nueva lista, pero los elementos internos de la lista (como otras listas) siguen siendo referencias a los mismos objetos que los de la lista original.

Ejemplo

    frutas = ["manzana", "banana", "cereza"]

# Lista original
lista_original = [1, 2, 3, 4, 5]

# Crear una copia superficial
copia_superficial = lista_original.copy()

# Modificar la copia no afecta a la lista original
copia_superficial[0] = 10

# Resultado: [1, 2, 3, 4
# Resultado: [1, 2, 3, 4, 5]
print(lista_original)

# Resu
# Resultado: [10, 2, 3, 4, 5]
print(copia_superficial)
  
Abrir en editor

Copiar una lista con la función list() en Pyhton

Puedes usar la función list() para crear una copia superficial de la lista original.

Ejemplo

    frutas = ["manzana", "banana", "cereza"]

# Lista original
lista_original = [1, 2, 3, 4, 5]

# Crear una copia superficial
copia_superficial = list(lista_original)

# Modificar la copia no afecta a la lista original
copia_superficial[0] = 10

# Resultado: [1, 2, 3, 4
# Resultado: [1, 2, 3, 4, 5]
print(lista_original)

# Resu
# Resultado: [10, 2, 3, 4, 5]
print(copia_superficial)
  
Abrir en editor

Copiar listas con la técnica slicing en Python

Puedes utilizar el operador de slicing ( [:] ) para crear una copia superficial de la lista original.

Ejemplo

    frutas = ["manzana", "banana", "cereza"]

# Lista original
lista_original = [1, 2, 3, 4, 5]

# Crear una copia superficial
copia_superficial = lista_original[:]

# Modificar la copia no afecta a la lista original
copia_superficial[0] = 10

# Resultado: [1, 2, 3, 4
# Resultado: [1, 2, 3, 4, 5]
print(lista_original)

# Resu
# Resultado: [10, 2, 3, 4, 5]
print(copia_superficial)
  
Abrir en editor

Usando el módulo copy en Pyhton

Puedes utilizar el módulo copy y la función copy() para crear una copia superficial de la lista original.

Ejemplo

    frutas = ["manzana", "banana", "cereza"]

# Importar el módulo copy
import copy

# Lista origi
# Lista original
lista_original = [1, 2, 3, 4, 5]

# Crear una copia superficial
copia_superficial = copy.copy(lista_original)

# Modificar la copia no afecta a la lista original
copia_superficial[0] = 10

# Resultado: [1, 2, 3, 4
# Resultado: [1, 2, 3, 4, 5]
print(lista_original)

# Resu
# Resultado: [10, 2, 3, 4, 5]
print(copia_superficial)
  
Abrir en editor

Practica Copiar una 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: Usar print()

Puedes usar el método copy() para crear una copia superficial (shallow copy) de la lista original. Una copia superficial crea una nueva lista, pero los elemento.

Ejemplo

    frutas = ["pera", "mango", "fresa"]

# Lista original
lista_original = [1, 2, 3, 4, 5]

# Crear una copia superficial
copia_superficial = lista_original.copy()

# Modificar la copia no afecta a la lista original
copia_superficial[0] = 10

# Resultado: [1, 2, 3, 4
# Resultado: [1, 2, 3, 4, 5]
print(lista_original)

# Resu
# Resultado: [10, 2, 3, 4, 5]
print(copia_superficial)
  
Abrir en editor

Ejercicio: Convertir a lista

Puedes usar la función list() para crear una copia superficial de la lista original.

Ejemplo

    frutas = ["pera", "mango", "fresa"]

# Lista original
lista_original = [1, 2, 3, 4, 5]

# Crear una copia superficial
copia_superficial = list(lista_original)

# Modificar la copia no afecta a la lista original
copia_superficial[0] = 10

# Resultado: [1, 2, 3, 4
# Resultado: [1, 2, 3, 4, 5]
print(lista_original)

# Resu
# Resultado: [10, 2, 3, 4, 5]
print(copia_superficial)
  
Abrir en editor

Ejercicio: Usar print() (2)

Puedes utilizar el operador de slicing ( [:] ) para crear una copia superficial de la lista original.

Ejemplo

    frutas = ["pera", "mango", "fresa"]

# Lista original
lista_original = [1, 2, 3, 4, 5]

# Crear una copia superficial
copia_superficial = lista_original[:]

# Modificar la copia no afecta a la lista original
copia_superficial[0] = 10

# Resultado: [1, 2, 3, 4
# Resultado: [1, 2, 3, 4, 5]
print(lista_original)

# Resu
# Resultado: [10, 2, 3, 4, 5]
print(copia_superficial)
  
Abrir en editor

Ejercicio: Importar el módulo copy

Puedes utilizar el módulo copy y la función copy() para crear una copia superficial de la lista original.

Ejemplo

    frutas = ["pera", "mango", "fresa"]

# Importar el módulo copy
import copy

# Lista origi
# Lista original
lista_original = [1, 2, 3, 4, 5]

# Crear una copia superficial
copia_superficial = copy.copy(lista_original)

# Modificar la copia no afecta a la lista original
copia_superficial[0] = 10

# Resultado: [1, 2, 3, 4
# Resultado: [1, 2, 3, 4, 5]
print(lista_original)

# Resu
# Resultado: [10, 2, 3, 4, 5]
print(copia_superficial)
  
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.


Resumen

  • Ejecuta y modifica cada ejemplo antes de seguir.
  • Revisa errores de indentación y de importación de módulos.
  • Consulta la lección anterior y la siguiente del menú lateral.

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.