Iterators are objects that can be iterated upon. An object which will return data, one element at a time.Python iterator objects should implement two methods, __iter__() and __next__(), collectively called the iterator protocol.An object is called iterable if we can get an iterator from it. For example: list, tuple, string etc. are the iterables.
# define a list l = ['A','B','C','D'] # get an iterator using iter() my_iter = iter(l) # iterate through it using next() # Output: A print(next(my_iter)) # Output: B print(next(my_iter)) # Usage of __next__() method # Output: C print(my_iter.__next__()) # Output: D print(my_iter.__next__()) # This will raise error, no data is left next(my_iter)
Generators are also one type of user defined functions which generates some value.yield() method is used to generate the values.
# A simple generator function def simp_gen(): n = 1 print('This will print '+str(n)) # Generator function contains yield statements yield n n = n+1 print('This will print '+str(n)) yield n n = n+1 print('This will print '+str(n)) yield n a = simp_gen() # This will print 1 next(a) # This will print 2 next(a) # This will print 3 next(a) # This will print an Error next(a)
Definition : 1 Display the sum of first n numbers using generator and Iterator. Value n will be entered by the user.
Solution using Iterator
#Take Input from user n = int(input('Enter Value of N ')) #Create a list l = range(1,n+1) sum = 0 #Make List iterable l_iter = iter(l) i=0 #Calculate Sum while i < n: sum = sum + next(l_iter) i = i+1 print('Sum is ' +str(sum))Solution using Generator