Skip to content
Related Articles

Related Articles

Improve Article

Split a string in equal parts (grouper in Python)

  • Last Updated : 16 Jun, 2020

Grouper recipe is an extended toolset made using an existing itertool as building blocks. It collects data into fixed-length chunks or blocks.

Existing Itertools Used:
izip_longest(*iterables[, fillvalue]) : Make an iterator that aggregates elements from each of the iterables. If the iterables are of uneven length, missing values are filled-in with fillvalue. Iteration continues until the longest iterable is exhausted.


  • The extended tools offer the same high performance as the underlying toolset.
  • The superior memory performance is kept by processing elements one at a time rather than bringing the whole iterable into memory all at once.
  • Code volume is kept small by linking the tools together in a functional style which helps eliminate temporary variables.
  • High speed is retained by preferring “vectorized” building blocks over the use of for-loops and generators which incur interpreter overhead.


Input : str = ABCDEFG, l = 3
Output : ABC DEF Gxx
Grouping characters of string in set of 3: ABC DEF Gxx.
'x' is added to the set which doesn't have 3 elements in it. 

Input : str = GEEKSFORGEEKS, l = 5

Below is the Python3 code :

# Python3 code for the grouper recipe
# import the existing itertool izip_longest
from itertools import izip_longest
# function for the grouper recipe
def grouper(iterable, n, fillvalue ='x'):
    # create 'n'-blocks for collection
    args = [iter(iterable)] * n
    # collect data into fixed length blocks of
    # length 'n' using izip_longest and store
    # result as a list
    ans = list(izip_longest(fillvalue = fillvalue, *args))
    # (optional) loop to convert ans to string
    t = len(ans)
    for i in range(t):
        ans[i] = "".join(ans[i])
    # return ans as string    
    return " ".join(ans)    
# Driver code
k = 3
result = grouper(s, k)



 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up
Recommended Articles
Page :