Combining Iterables with Fillvalue Using zip_longest

  • Share this:

Code introduction


This function uses `itertools.zip_longest` to combine multiple iterable objects, and if the objects are of different lengths, it uses `fillvalue` to fill the shorter sequences.


Technology Stack : itertools

Code Type : Function

Code Difficulty : Intermediate


                
                    
def zip_longest(*args, fillvalue=None):
    """将可变数量的可迭代对象组合成一个迭代器,其中较短的序列将用fillvalue填充。

    Args:
        *args: 可变数量的可迭代对象。
        fillvalue: 用于填充较短的序列的值。

    Returns:
        一个迭代器,它将生成元组,其中每个元组包含从每个输入迭代器中取出的元素。
        如果所有输入迭代器都已经耗尽,则使用fillvalue填充。

    Example:
        >>> list(zip_longest([1, 2, 3], [4, 5], fillvalue=0))
        [(1, 4, 0), (2, 5, 0), (3, None, 0)]
    """
    # 使用itertools.zip_longest来实现功能
    from itertools import zip_longest as _zip_longest

    return _zip_longest(*args, fillvalue=fillvalue)                
              
Tags: