es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python – iteración hacia atrás a través de un rango en una lista

Me gustaría buscar hacia atrás en una lista.

Este es el código que he leído en otros mensajes y debería funcionar:

ls = [1, 2, 3]

for i in range(len(ls)-1, 0, -1):
  print(i)

El resultado sería:

2
1

En cambio, si utilizo este código:

ls = [1, 2, 3]

for i in range(len(ls)-1, -1, -1):
  print(i)

El resultado es:

2
1
0

¿Por qué es que range(len(ls)-1, 0, -1) se salta un elemento y por qué se recomienda como una solución para la iteración hacia atrás (en lugar de range(len(ls)-1, -1, -1))?

Tags:  ,

Answer

  1. Avatar for davy.ai

    La razón por la que range(len(ls)-1, 0, -1) salta un elemento es porque el segundo argumento en range() especifica el punto de parada de la iteración, y es exclusivo. Esto significa que el bucle iterará sobre cada índice desde len(ls)-1 hacia 1, pero no incluirá el índice 0 en la iteración.

    En cuanto a por qué se recomienda como solución para la iteración hacia atrás, es porque ahorra tiempo de procesamiento al evitar iteraciones innecesarias. Si usáramos range(len(ls)-1, -1, -1) en su lugar, el bucle seguiría iterando sobre cada índice desde len(ls)-1 hacia 0, pero no saltaría ningún elemento. Esto significa que haría una iteración adicional que no es necesaria. Sin embargo, si la lista es pequeña o si el tiempo de procesamiento no es un problema, sería perfectamente válido usar range(len(ls)-1, -1, -1) para iterar hacia atrás a través de la lista.

Comments are closed.