Combining Sequences with Fillvalue

  • Share this:

Code introduction


Combine input sequences into one list, using the fillvalue for sequences that are shorter than the longest.


Technology Stack : itertools (tools for iteration)

Code Type : Function

Code Difficulty : Intermediate


                
                    
def zip_longest(*args, fillvalue=0):
    """
    将输入的序列组合成一个列表,如果序列长度不一致,使用fillvalue填充较短的序列。
    """
    # 使用zip_longest从itertools库中,用于处理长度不等的序列
    from itertools import zip_longest
    # 使用max函数确定最长的序列长度
    it = iter(args)
    longest = max(len(list(it)), len(list(itertools.chain(*args))))
    # 使用zip_longest生成组合后的序列,使用fillvalue填充较短的序列
    return [tuple(x) if x else (fillvalue,) for x in zip_longest(*args, fillvalue=fillvalue)]