sampleqa.in tutorials,
	       Python Programming  tutorial,Python Generators Example

Python 3 Tutorial


Python Generators


     Generators are way to create custom iterators. Generator are created using functions. Then How it is different from other functions, generator function uses yield statement. Built-in iterators has __itr__ and __next__ dunder methods implementation. for custom iterators, yield statement provides __itr__ method implementation and __next__ method implemention. and follows iterator protocol. i.e whenever for-loop asks for next item in the container, yield statement pause the function execution and return a value to the caller,and remember state of the object,again control comes back to the called function , this process continues until StopIteration exception is thrown

      	     
      	     >>> def gen():
...  yield 1
...  yield 2
...  yield 3
... 
>>> 
>>> for i in gen():
...  print(i)
... 
1
2
3

>>> def gen():
...   lscores = [20,30,20,10,2,5]
...   index = 0
...   while (len(lscores) != index):
...     yield lscores[index]
...     index=index+1
... 
>>> gen()

>>> 
>>> for i in gen():
...  print(i)
... 
20
30
20
10
2
5
Reverse Iterator
>>> def gen():
...   lscores = [20,30,20,10,2,5]
...   index = len(lscores)-1
...   while ( index >= 0):
...     yield lscores[index]
...     index=index-1
... 
>>> for i in gen():
...  print(i)
... 
5
2
10
20
30
20
>>> 


      	     

ADS