欢迎访问宙启技术站
智能推送

利用zip_longest()函数处理不等长列表的情况

发布时间:2023-12-11 08:22:10

zip_longest()函数是python中的内置函数itertools模块中的一种函数,用于处理不等长的多个可迭代对象。与zip()函数不同的是,zip_longest()函数会以最长的可迭代对象为基准,将所有可迭代对象的对应元素依次打包成一个个元组,如果某个可迭代对象的长度不足,则用指定值填充。

zip_longest(iter1, iter2, ..., iterN, fillvalue=None)

其中,iter1, iter2, ..., iterN是可迭代对象,fillvalue是用于填充不足长度的值,默认为None。

下面是一个使用zip_longest()函数的例子:

from itertools import zip_longest

list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c']
list3 = [True, False, True, False, True, False]

for item in zip_longest(list1, list2, list3, fillvalue='N/A'):
    print(item)

输出结果为:

(1, 'a', True)
(2, 'b', False)
(3, 'c', True)
(4, 'N/A', False)
(5, 'N/A', True)

在这个例子中,我们有三个不等长的列表list1、list2和list3。我们使用zip_longest()函数将它们打包成元组。

由于list2长度较短,所以在每个元组的第二个位置上使用fillvalue='N/A'进行填充。最终,zip_longest()函数会以最长的列表为基准,将所有元素对应位置打包成一个个元组。

在输出结果中,我们可以看到在每个元组的第二个位置上,当list2元素不够时,会使用fillvalue填充。

通过使用zip_longest()函数,我们可以更方便地处理多个不等长列表的情况,避免处理时出现索引错误等问题。