¿Qué imprime esto?
import copy
a = [[1], [2]]
b = copy.copy(a)
b[0].append(9)
print(a)Opciones
- [[1], [2]]
- [[1, 9], [2]] (Opción correcta)
- [[1], [2], 9]
- [[9], [2]]
Respuesta
[[1, 9], [2]]
Por qué
copy.copy crea una lista exterior nueva, pero los elementos de dentro son las MISMAS listas internas, no copias.
Así que b[0] y a[0] son una sola lista; lo que le añades aparece en ambas.
copy.deepcopy copia todo de forma recursiva, así que no se comparte nada.
Recuerda
Shallow copy = contenedor nuevo, mismo contenido.