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)
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)
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)
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)
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)
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)
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)
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)
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.