Iterator and Generator in Python 3:
Iterator is an object,
which allows a programmer to traverse through all the elements of a collection, regardless of its specific implementation. In Python, an
iterator object implements two methods, iter()
and next().
String, List or Tuple objects can be used to create an Iterator.
A generator is a function that produces or yields a sequence of values using yield
method.
When a generator function is called, it returns a generator object
without even beginning execution of the function. When the next() method is called for the
first time, the function starts executing, until it reaches the yield
statement, which returns the yielded value. The yield keeps track i.e.
remembers the last execution and the second next() call continues from previous
value.
The following example defines a generator, which generates an iterator
for all the Fibonacci numbers.