Infinite Iterators in Python
Last Updated :
06 Dec, 2019
Improve
Iterator in Python is any python type that can be used with a ‘
for in loop
’. Python lists, tuples, dictionaries, and sets are all examples of inbuilt iterators. But it is not necessary that an iterator object has to exhaust, sometimes it can be infinite. Such type of iterators are known as Infinite iterators.
Python provides three types of infinite iterators -
- count(start, step): This iterator starts printing from the “start” number and prints infinitely. If steps are mentioned, the numbers are skipped else step is 1 by default. See the below example for its use with
for in
loop. Example:Python3 1== # Python program to demonstrate # infinite iterators import itertools # for in loop for i in itertools.count(5, 5): if i == 35: break else: print(i, end =" ")
5 10 15 20 25 30
- cycle(iterable): This iterator prints all values in order from the passed container. It restarts printing from beginning again when all elements are printed in a cyclic manner.
Example #1:
Python3 1== # Python program to demonstrate # infinite iterators import itertools count = 0 # for in loop for i in itertools.cycle('AB'): if count > 7: break else: print(i, end = " ") count += 1
A B A B A B A B
Example #2: Using next function.Python3 1== # Python program to demonstrate # infinite iterators import itertools l = ['Geeks', 'for', 'Geeks'] # defining iterator iterators = itertools.cycle(l) # for in loop for i in range(6): # Using next function print(next(iterators), end = " ")
Geeks for Geeks Geeks for Geeks
- repeat(val, num): This iterator repeatedly prints the passed value infinite number of times. If the optional keyword
num
is mentioned, then it repeatedly printsnum
number of times. Example:Python3 1== # Python code to demonstrate the working of # repeat() # importing "itertools" for iterator operations import itertools # using repeat() to repeatedly print number print ("Printing the numbers repeatedly : ") print (list(itertools.repeat(25, 4)))
Printing the numbers repeatedly : [25, 25, 25, 25]