Python中itertools模块zip_longest函数详解
简介
在Python的标准库中,itertools模块提供了很多用于实现迭代算法的工具,其中就包括zip_longest函数。本篇文章主要讲解zip_longest函数在Python的使用方法以及两个示例。
zip_longest函数用法
zip_longest函数用于并行迭代多个可迭代对象,并返回一个元组。如果某个可迭代对象的元素在其他可迭代对象中不存在,则使用给定的默认值填充。zip_longest函数的基本语法为:
itertools.zip_longest(*iterables, fillvalue=None)
其中,*iterables
是一个可变长度的参数,可以传入若干个可迭代对象;fillvalue=None
表示默认值,如果某个可迭代对象中的元素已经被迭代完,则使用这个默认值填充。
下面通过两个示例来具体讲解zip_longest函数的用法。
示例1
在第一个示例中,我们将用zip_longest函数来处理两个列表,以便并行迭代它们。
import itertools
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c', 'd']
for a, b in itertools.zip_longest(list1, list2, fillvalue='***'):
print(a, b)
输出结果为:
1 a
2 b
3 c
*** d
从输出结果可以看出,zip_longest函数会同时迭代两个列表,并且如果一个列表已经迭代完了,且另一个列表还有元素,那么就会用指定的默认值来填充缺失的元素。
示例2
在第二个示例中,我们将用zip_longest函数来处理三个可迭代对象(两个列表和一个字符串),以便并行迭代它们。
import itertools
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c', 'd']
str1 = 'Python'
for a, b, c in itertools.zip_longest(list1, list2, str1, fillvalue='***'):
print(a, b, c)
输出结果为:
1 a P
2 b y
3 c t
*** d h
*** *** o
*** *** n
*** *** ***
从输出结果可以看出,zip_longest函数会同时迭代三个可迭代对象,并且如果某个可迭代对象已经被迭代完了,那么就会用指定的默认值来填充缺失的元素。
总结
本篇文章主要讲解了Python中itertools模块中的zip_longest函数的用法,并通过两个示例来进行详细说明。zip_longest函数可以用于并行迭代多个可迭代对象,并返回一个元组,并且如果某个可迭代对象的元素在其他可迭代对象中不存在,则使用给定的默认值填充。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中itertools模块zip_longest函数详解 - Python技术站