File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # it is an object that allows you traverse from element of collection one at a time
2+ # __iter__() return object of iterator
3+ # __next__()
4+
5+ arr = [1 ,2 ,3 ,4 ,5 ]
6+ iterator = iter (arr )
7+
8+ print (next (iterator ))
9+ print (next (iterator ))
10+
11+
12+ for i in iterator :
13+ print (i )
14+
15+
Original file line number Diff line number Diff line change 1+ class my_iterator :
2+
3+ def __init__ (self ,start ,end ):
4+ self .start = start
5+ self .end = end
6+
7+ def __iter__ (self ):
8+ return self
9+
10+ def __next__ (self ):
11+ if self .start <= self .end :
12+ temp = self .start
13+ self .start += 1
14+ return temp
15+ else :
16+ raise StopIteration
17+
18+ ite = my_iterator (1 ,5 )
19+ print (next (ite ))
20+ for i in ite :
21+ print (i )
Original file line number Diff line number Diff line change 1+ # Generators
2+
3+
4+ def my_generator ():
5+ for i in range (500000 ):
6+ yield i
7+
8+ gen = my_generator ()
9+ print (next (gen ))
10+ print (next (gen ))
11+ print (next (gen ))
Original file line number Diff line number Diff line change 1+ def fib_generator ():
2+ a ,b = 0 ,1
3+ while True :
4+ yield a
5+ a ,b = b , a + b
6+
7+ gen = fib_generator ()
8+
9+ for _ in range (10 ):
10+ print (next (gen ))
11+
12+ for _ in range (10 ):
13+ print (next (gen ))
Original file line number Diff line number Diff line change 1+ class my_iterator :
2+
3+ def __init__ (self ,start ,end ):
4+ self .start = start
5+ self .end = end
6+
7+ def __iter__ (self ):
8+ return self
9+
10+ def __next__ (self ):
11+ if self .start <= self .end :
12+ temp = self .start
13+ self .start += 1
14+ return temp
15+ else :
16+ raise StopIteration
17+
18+ def __reset__ (self ):
19+ self .start = 1
20+
21+ ite = my_iterator (1 ,5 )
22+ print (next (ite ))
23+ ite .__reset__ ()
24+
25+ for i in ite :
26+ print (i )
You can’t perform that action at this time.
0 commit comments