¿Por qué esto no funciona?¿Cómo reverso una parte (porción) de una lista en Python?
# to reverse a part of the string in place
a = [1,2,3,4,5]
a[2:4] = reversed(a[2:4]) # This works!
a[2:4] = [0,0] # This works too.
a[2:4].reverse() # But this doesn't work
@ Ismail: No veo una conexión entre la mutabilidad y el hecho de que crea rebanar copias. Cortar matrices NumPy no crea copias, y también son mutables. Estas son decisiones de diseño independientes. –
@ İsmail: parece que no entiendo lo que buscas. Si las listas de Python fueran inmutables, no se podría decir si se creó una copia o no, porque no se puede modificar de todos modos. –
Nit: "_Las listas de Python crea siempre copias _" - excepto cuando están asignadas a, como en 'a [2: 4] = invertido (a [2: 4])' en el ejemplo del OP. La gente puede ser inducida a pensar que 'x = invertido (x)' y 'x.reverse()' ambos modifican 'x', pero son operaciones fundamentalmente diferentes en Python, y sus resultados difieren cuando' x' no es una variable como se muestra aquí – musiphil