Esta pregunta ya tiene respuestas aquí:
¿Cómo invierto una lista o la recorro hacia atrás?
(37 respuestas)
Cerrado
hace 2 años
.
x = [1, 2, 3, 4, 5, 6, 7, 8]
for num in range(len(x)):
x[num] = x[-(num + 1)]
print(x)
Chicos, quiero saber por qué el código anterior no pudo modificar la lista en orden inverso. Obtengo [8, 7, 6, 5, 5, 6, 7, 8] cuando ejecuto el código. Por favor amablemente ayuda
4
Estás sobrescribiendo la lista mientras la iteras. Imprime x en cada iteración y verás.
-AKX
26/03/2021 a las 20:05
2
Lea Cómo preguntar. El título de tu pregunta es simplemente horrible.
- John Coleman
26/03/2021 a las 20:08
Como nuevo usuario aquí, también realice el recorrido.
- Ulrich Eckhardt
26/03/2021 a las 20:11
¿Por qué no das x = x[::-1] y ves lo que obtienes? También publiqué el enlace a la pregunta duplicada. Vea el enlace para más detalles
- Joe Ferndz
26/03/2021 a las 20:13
porque lo inviertes dos veces
juanpa.arrivillaga
26/03/2021 a las 20:22
------------------------------------
Para invertir la cadena, todo lo que necesita hacer es mylist.reverse() o mylist[::-1]. Para obtener más detalles sobre esto, consulte la respuesta de Stack Overflow del año pasado.
x = [1, 2, 3, 4, 5, 6, 7, 8]
x = x[::-1]
Lista original:
[1, 2, 3, 4, 5, 6, 7, 8]
Lista actualizada:
[8, 7, 6, 5, 4, 3, 2, 1]
------------------------------------
Estás reemplazando los valores existentes y luego volviendo a recorrerlos.
Lo que quieres usar es el método inverso.
x = [1, 2, 3, 4, 5, 6, 7, 8]
x.reverse()
print(x)
2
1
Quieren revertirlo, no ordenarlo.
- bereal
26/03/2021 a las 20:10
@bereal ah, creo que tienes razón. No pude saberlo después de que usaron "for num in range(len(x))". Gracias
Coberturas de testamento
26/03/2021 a las 20:17