Itertools in Python3 - GeeksforGeeks

22 Sep, 2021
Itertools is a module in Python, it is used to iterate over data structures that can be stepped over using a for-loop. Such data structures are also known as iterables. This module works as a fast, memory-efficient tool that is used either by themselves or in combination to form iterator algebra. 
This module incorporates functions that utilize computational resources efficiently. Using this module also tends to enhance the readability and maintainability of the code. 
The grouper() function can be found in the Recipes section of the itertools docs. The recipes are an excellent source of inspiration for ways to use itertools to your advantage.Example  
python3
# Python code to demonstrate the# grouper Recipeimport itertools as it # defining the grouper functiondef grouper(inputs, n, fillvalue = None):    iters = [iter(inputs)] * n    return it.zip_longest(*iters, fillvalue = fillvalue) alpha = ['g', 'e', 'e', 'k', 's', 'f', 'o',         'r', 'g', 'e', 'e', 'k', 's']print(list(grouper(alpha, 3)))
Output : 
[(‘g’, ‘e’, ‘e’), (‘k’, ‘s’, ‘f’), (‘o’, ‘r’, ‘g’), (‘e’, ‘e’, ‘k’), (‘s’, None, None)]  
 
Brute force is a straightforward method of solving a problem that relies on sheer computing power and trying every possibility rather than advanced techniques to improve efficiency. There are different Brute force itertools function such as:  
combinations()  
combinations_with_replacement()  
permutations()  
 
The itertools.combinations() function takes two arguments—an iterable inputs and a positive integer n—and produces an iterator over tuples of all combinations of n elements in inputs.Example  
python3
# Python code to demonstrate combinationsimport itertools as it print(list(it.combinations([1, 2], 2)))
Output :  
[(1, 2)]
 
combinations_with_replacement() works just like combinations(), accepting an iterable inputs and a positive integer n, and returns an iterator over n-tuples of elements from inputs. The difference is that combinations_with_replacement() allows elements to be repeated in the tuples it returns. Example  
python3
# Python code to demonstrate combinations_with_replacementimport itertools as it print(list(it.combinations_with_replacement([1, 2], 2)))
Output :  
[(1, 1), (1, 2), (2, 2)] 
 
A permutation is a collection or a combination of objects from a set where the order or the arrangement of the chosen objects does matter. permutations() accepts a single iterable and produces all possible permutations (rearrangements) of its elements. Example  
python3
# Python code to demonstrate permutationsimport itertools as it print(list(it.permutations(['g', 'e', 'k'])))
Output : 
[(‘g’, ‘e’, ‘k’), (‘g’, ‘k’, ‘e’), (‘e’, ‘g’, ‘k’), (‘e’, ‘k’, ‘g’), (‘k’, ‘g’, ‘e’), (‘k’, ‘e’, ‘g’)]
 
Converting a list of lists (2D), into a list (1D) is called flattening. Flattening a list of lists merges all the sublists into one unified list. Example  
python3
# Python code to demonstrate flattening a list of listsimport itertools as it list_of_lists = [[1, 2], [3, 4]]chain_object = it.chain.from_iterable(list_of_lists) # Return chain object with nested lists separated# Convert to list to flattenflattened_list = list(chain_object) print(flattened_list)
Output :  
[1, 2, 3, 4] 
 
adnanirshad158
Python-itertools
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Defaultdict in Python
Enumerate() in Python
sum() function in Python
Python String | replace()
Read a file line by line in Python
How to Install PIP on Windows ?
Deque in Python
Different ways to create Pandas Dataframe
Iterate over a list in Python