Terminating iterators are used to work on the short input sequences and produce the output based on the functionality of the method used.
Some of the terminating iterators are:
accumulate(iter, func): This iterator takes two arguments, iterable target and the function which would be followed at each iteration of value in target. If no function is passed, addition takes place by default. If the input iterable is empty, the output iterable will also be empty.
import itertools
import operator
my_arr = [1, 4, 5, 7]
# using accumulate()
# prints the successive summation of elements
print (list(itertools.accumulate(my_arr)))
# prints [1, 5, 10, 17]
chain(iter1, iter2..): This function is used to print all the values in iterable targets one after another mentioned in its arguments.
import itertools
arr1 = [1, 4, 5, 7]
arr2 = [1, 6, 5, 9]
arr3 = [8, 10, 5, 4]
# using chain() to print all elements of lists
print (list(itertools.chain(arr1, arr2, arr3)))
# prints [1, 4, 5, 7, 1, 6, 5, 9, 8, 10, 5, 4]
tee(iterator, count):- This iterator splits the container into a number of iterators mentioned in the argument.
import itertools
arr = [2, 4, 6, 7, 8, 10, 20]
# storing list in iterator
iti = iter(arr)
# using tee() to make a list of iterators
# makes list of 3 iterators having same values.
it = itertools.tee(iti, 3)
# printing the values of iterators
for i in range (0, 3):
print (list(it[i]))
# prints
[2, 4, 6, 7, 8, 10, 20]
[2, 4, 6, 7, 8, 10, 20]
[2, 4, 6, 7, 8, 10, 20]
You can read all terminating iterators here.
Try the following example in the editor given below.
Given three list of integers called arr1, arr2, arr3 in the editor. Perform operations as described in the comments.