Creo una lista de listas y quiero agregar elementos a las listas individuales, pero cuando intento agregar a una de las listas (a[0].append(2)
), el elemento se agrega a todas las listas.¿Por qué foo.append (bar) afecta a todos los elementos en una lista de listas?
a=[]
b=[1]
a.append(b)
a.append(b)
a[0].append(2)
a[1].append(3)
print a
Da: [[1, 2, 3], [1, 2, 3]]
Mientras que yo esperaría: [[1, 2], [1, 3]]
Cambiar la forma construyo la lista inicial de listas, haciendo b
un flotador en lugar de una lista y poner los soportes en el interior .Append(), me da la salida deseada:
a=[]
b=1
a.append([b])
a.append([b])
a[0].append(2)
a[1].append(3)
print a
da: [[1, 2], [1, 3]]
¿Pero por qué? No es intuitivo que el resultado sea diferente. Sé que esto tiene que ver con que haya multiple references to the same list, pero no veo dónde está sucediendo eso.
Gracias, ahora tiene mucho sentido. – litturt