He intentado lo siguiente en el intérprete de Python:pitón: Al añadir un diccionario a una lista - Veo un puntero como el comportamiento
>>>
>>> a = []
>>> b = {1:'one'}
>>> a.append(b)
>>> a
[{1: 'one'}]
>>> b[1] = 'ONE'
>>> a
[{1: 'ONE'}]
>>>
Aquí, después de anexar el diccionario 'b' a la lista 'A', Estoy cambiando el valor correspondiente a la tecla 1 en el diccionario 'a'. De alguna manera este cambio también se refleja en la lista. Cuando añado un diccionario a una lista, ¿no añado el valor del diccionario? Parece que he agregado un puntero al diccionario en la lista y, por lo tanto, los cambios en el diccionario también se reflejan en la lista.
No deseo que el cambio se refleje en la lista. ¿Cómo lo hago?
¡Gracias por su tiempo!
Chekhov No es ** diccionario 'b' **, es ** diccionario b ** o ** diccionario de nombre 'b' **. Por cierto, escribió con error: _ "Estoy cambiando el valor correspondiente a la clave 1 en el diccionario 'a'" _ No, en el diccionario b. Con respecto a su asombro: una lista no contiene valores, contiene objetos, ya que todo es objeto en Python. O más exactamente, una lista contiene referencias a los objetos. – eyquem
Chekhov También debería ver esta pregunta: (http://stackoverflow.com/questions/5242933/why-in-python-list-elem-modifies-the-original-list) – eyquem
@eyquem gracias por su comentario. Estaba publicando esto a toda prisa. Mis disculpas. – neo29