Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/07/2015, 13:44
Koan
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 11 meses
Puntos: 9
¿Cambiar el step de un range o generador en tiempo de ejecución?

Hola!

Me gustaría saber si es posible realizar esto. Es decir, en un ciclo for (o un generador) cambiar el paso o step en tiempo de ejecución. He mirado por encima el modulo itertools. Pero no se si hay alguna funcion que lo haga.

Seria poder hacer algo como esto: (Que la variable fuera modificando el step en cada pasada. O una sola vez como en el ejemplo):

Código Python:
Ver original
  1. step = 2
  2.  
  3. for x in range(1, 20, step):
  4.     print(x)
  5.     step = 4 # en este caso se habria modificado en 4

Incluso poder modificar la variable step (dentro del bucle for) con un random.randint(a, b).

Se trataria de ir dando saltos en el ciclo. Pero claro, manteniendo el ultimo valor de la variable de control como referencia. Esto se podria aplicar tambien a los generadores. Osea, que no fuera siempre el mismo paso.