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

Python中zip_longest()函数的使用方法

发布时间:2023-06-10 05:52:49

Python中的zip_longest()函数是内置模块itertools中的一个函数,可用于对多个序列进行迭代操作。与zip()类似,zip_longest()函数可以将多个序列中的元素合并在一起,并返回一个迭代器。不同之处在于,zip_longest()可以处理多个序列长度不一样的情况,缺失的值用fillvalue填充,默认为None。

zip_longest(iterable1, iterable2,..., fillvalue=None)

参数说明:

iterable1,iterable2,...: 表示需要进行迭代的序列,可以有多个。

fillvalue: 填充值,用于处理序列长度不同的情况,默认为None。

使用示例:

1.对两个序列进行迭代,当其中一个序列元素全部迭代完时,使用fillvalue填充:

from itertools import zip_longest  
a = [1, 2, 3]  
b = ['a', 'b']  
c = zip_longest(a, b, fillvalue = 0)  
for i in c:  
    print(i)  
# 输出:  
# (1, 'a')  
# (2, 'b')  
# (3, 0)  

2.对两个序列进行迭代,当其中一个序列元素全部迭代完时,不使用fillvalue填充:

from itertools import zip_longest  
a = [1, 2, 3]  
b = ['a', 'b']  
c = zip_longest(a, b)  
for i in c:  
    print(i)  
# 输出:  
# (1, 'a')  
# (2, 'b')  
# (3, None) 

3.对三个序列进行迭代,包含长度不一样的序列:

from itertools import zip_longest  
a = [1, 2, 3]  
b = ['a', 'b']  
c = [4, 5]  
d = zip_longest(a, b, c, fillvalue = 0)  
for i in d:  
    print(i)  
# 输出:  
# (1, 'a', 4)  
# (2, 'b', 5)  
# (3, 0, 0) 

总之,zip_longest()函数的使用方式与zip()类似,但是它可以处理长度不一的序列迭代,填充缺失的元素,非常实用。