Last Updated : 03 Feb, 2023
Iterator is defined as object types which contains values that can be accessed or iterated using a loop. There are different iterators that come built-in with Python such as lists, sets, etc. Itertools is the Python module that contains some inbuilt functions for generating sequences using iterators. This module provides various functions that work on iterators to produce complex iterators. This module works as a fast, memory-efficient tool that is used either by themselves or in combination to form iterator algebra. There are different types of Iterators
The below-mentioned Python program illustrates the functioning of the cycle function. It takes string type as an argument and produces the infinite sequence.
Python3
import itertools
# String for sequence generation
Inputstring ="Geeks"
# Calling the function Cycle from
# itertools and passing string as
#an argument and the function returns
# the iterator object
StringBuffer = itertools.cycle(Inputstring)
SequenceRepeation = 0
SequenceStart = 0
SequenceEnd = len(Inputstring)
for output in StringBuffer:
if(SequenceStart == 0):
print("Sequence % d"%(SequenceRepeation + 1))
# Cycle function iterates through each
# element and produces the sequence
# and repeats it the sequence
print(output, end =" ")
# Checks the End of the Sequence according
# to the given input argument
if(SequenceStart == SequenceEnd-1):
if(SequenceRepeation>= 2):
break
else:
SequenceRepeation+= 1
SequenceStart = 0
print("\n")
else:
SequenceStart+= 1
Output:
Sequence 1 G e e k s Sequence 2 G e e k s Sequence 3 G e e k s
The itertools.cycle function also works with the Python Lists. The below-mentioned Python program illustrates the functioning. It takes the Python list as an argument and produces the infinite sequence.
Python3
import itertools
# List for sequence generation
Inputlist = [1, 2, 3]
# Calling the function Cycle from
# itertools and passing list as
# an argument and the function
# returns the iterator object
ListBuffer = itertools.cycle(Inputlist)
SequenceRepeation = 0
SequenceStart = 0
SequenceEnd = len(Inputlist)
for output in ListBuffer:
if(SequenceStart == 0):
print("Sequence % d"%(SequenceRepeation + 1))
# Cycle function iterates through
# each element and produces the
# sequence and repeats it the sequence
print(output, end =" ")
# Checks the End of the Sequence according
# to the given input argument
if(SequenceStart == SequenceEnd-1):
if(SequenceRepeation>= 2):
break
else:
SequenceRepeation+= 1
SequenceStart = 0
print("\n")
else:
SequenceStart+= 1
Output:
Sequence 1 1 2 3 Sequence 2 1 2 3 Sequence 3 1 2 3
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4