Split a string in equal parts (grouper in Python) Last Updated : 06 Apr, 2023 Comments Improve Suggest changes Like Article Like Report 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. Performance: 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. Examples: Input : str = ABCDEFG, l = 3 Output : ABC DEF Gxx Explanation: 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 Output : GEEKS FORGE EKSxx Below is the Python3 code : Python3 # 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 s = "ABCDEFG" k = 3 result = grouper(s, k) print(result) Output: ABC DEF Gxx The time complexity and auxiliary space of the above code are: Time complexity: O(n), where n is the length of the input iterable. Create Quiz Comment A adisakshya Follow 0 Improve A adisakshya Follow 0 Improve Article Tags : Technical Scripter Python Technical Scripter 2018 Explore Python FundamentalsPython Introduction 2 min read Input and Output in Python 4 min read Python Variables 4 min read Python Operators 4 min read Python Keywords 2 min read Python Data Types 8 min read Conditional Statements in Python 3 min read Loops in Python - For, While and Nested Loops 5 min read Python Functions 5 min read Recursion in Python 4 min read Python Lambda Functions 5 min read Python Data StructuresPython String 5 min read Python Lists 4 min read Python Tuples 4 min read Python Dictionary 3 min read Python Sets 6 min read Python Arrays 7 min read List Comprehension in Python 4 min read Advanced PythonPython OOP Concepts 11 min read Python Exception Handling 5 min read File Handling in Python 4 min read Python Database Tutorial 4 min read Python MongoDB Tutorial 3 min read Python MySQL 9 min read Python Packages 10 min read Python Modules 3 min read Python DSA Libraries 15 min read List of Python GUI Library and Packages 3 min read Data Science with PythonNumPy Tutorial - Python Library 3 min read Pandas Tutorial 4 min read Matplotlib Tutorial 5 min read Python Seaborn Tutorial 3 min read StatsModel Library - Tutorial 3 min read Learning Model Building in Scikit-learn 6 min read TensorFlow Tutorial 2 min read PyTorch Tutorial 6 min read Web Development with PythonFlask Tutorial 8 min read Django Tutorial | Learn Django Framework 7 min read Django ORM - Inserting, Updating & Deleting Data 4 min read Templating With Jinja2 in Flask 6 min read Django Templates 5 min read Build a REST API using Flask - Python 3 min read Building a Simple API with Django REST Framework 3 min read Python PracticePython Quiz 1 min read Python Coding Practice 1 min read Python Interview Questions and Answers 15+ min read Like