While you can't do it with a straight generator, you can create your own:
class MyIter:
def __init__(self, start, stop, step=1):
self.start = start
self.stop = stop
self.step = step
def __iter__(self):
self.cur = self.start
while self.cur < self.stop:
yield self.cur
self.cur += 1
And then you could do the following:
In [36]: i = MyIter(1, 10)
In [37]: for x in i:
....: if x % 2:
....: i.cur += 1
....: print(x)
....:
1
3
5
7
9
-HTH,
Wayne
On Tue, 10 Jul 2012, Hugo Arts wrote:
On Mon, Jul 9, 2012 at 11:59 PM, Abhishek Pratap <[email protected]>
wrote:
hey guys
I want to know whether it is possible for dynamically update the
step
size in xrange or someother slick way.
Here is what I am trying to do, if during a loop I find the x in
list
I want to skip next #n iterations.
for x in xrange(start,stop,step):
if x in list:
step = 14
else:
step = 1
Thanks!
-Abhi
It is not possible with a range object. You'll have to make a while loop and
keep track of the step yourself.
Hugo
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor