He encontrado lo que creo que es un comportamiento extraño en Python, y me gustaría que alguien lo explique si es posible.Anexando a listas 2D en Python
He creado una lista vacía 2D
listy = [[]]*3
print listy
[[], [], []]
Los siguientes trabajos como era de esperar:
listy[1] = [1,2]
rendimientos [[], [1,2], []]
listy[1].append(3)
rendimientos [[], [1,2,3], []]
Sin embargo, cuando Anexar a una de las listas vacías, python se agrega a TODAS las sublistas, de la siguiente manera:
listy[2].append(1)
rendimientos [[1], [1,2,3], [1]]
.
¿Alguien me puede explicar por qué ocurre este comportamiento?
Me pregunto cuántas veces por mes se me pregunta esto. Sin duda, esta es una de las preguntas más frecuentes de todos los tiempos sobre Python (y no solo sobre Stack Overflow). De las preguntas frecuentes en los documentos oficiales de Python: [¿Cómo creo una lista multidimensional?] (Http://docs.python.org/faq/programming.html#how-do-i-create-a-multidimensional-list) –