Esta es una pregunta simple sobre cómo maneja Python los datos y las variables. He hecho muchos experimentos y han descubierto la mayoría de Python, excepto que esta me mantiene tropezar:Asignación de un valor a un elemento de un sector en Python
[editar: Me separé y se han reorganizado los ejemplos para mayor claridad]
Ejemplo 1:
>>> a = [[1], 2]
>>> a[0:1]
[[1]]
>>> a[0:1] = [[5]]
>>> a
[[5], 2] # The assignment worked.
Ejemplo 2:
>>> a = [[1], 2]
>>> a[0:1][0]
[1]
>>> a[0:1][0] = [5]
>>> a
[[1], 2] # No change?
Ejemplo 3:
>>> a = [[1], 2]
>>> a[0:1][0][0]
1
>>> a[0:1][0][0] = 5
>>> a
[[5], 2] # Why now?
Puede alguien explicarme qué está pasando aquí?
Hasta ahora, las respuestas parecen afirmar que a[0:1]
devuelve una nueva lista que contiene una referencia al primer elemento de a
. Pero no veo cómo eso explica el Ejemplo 1.
Interesante pregunta. Veamos lo que dice Alex. :) –