利用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()函数,我们可以更方便地处理多个不等长列表的情况,避免处理时出现索引错误等问题。
