Custom zip_longest Implementation without itertools

  • Share this:

Code introduction


Create a custom zip_longest function that works similarly to the built-in zip_longest from the itertools module, but it can be implemented from Python's built-in libraries without using the itertools module. This function can aggregate elements from multiple iterable objects and stop when the shortest iterable is exhausted, filling in missing values with fillvalue.


Technology Stack : itertools

Code Type : Function

Code Difficulty : Intermediate


                
                    
def zip_longest(*args, fillvalue=None):
    """
    Like zip(), returns an iterator that aggregates elements from each of the iterables.
    The iterator stops when the shortest iterable is exhausted, unlike zip(), which
    stops when the longest iterable is exhausted. If the iterables are of uneven length,
    missing values are filled-in with fillvalue.
    """
    # This function uses the built-in zip_longest function from itertools module.
    from itertools import zip_longest

    def custom_zip_longest(*args, fillvalue=None):
        return zip_longest(*args, fillvalue=fillvalue)

    return custom_zip_longest                
              
Tags: