python中的zip方法详解

         有时我们有这样的需求,想从两个列表中分别迭代元素,这时我们就可以使用python中的zip方法,事例如下:
l1 = [1,2,3,4,5]
l2 = ['a','b','c','d','e','f']
for x,y in zip(l1,l2):
    print(x,y)
   
  结果:
1 a
2 b
3 c
4 d
5 e
         zip(a,b)方法的工作原理是创建出一个迭代器,该迭代器可产生出元组(x,y),这里的x取自数组a,而y取自序列b,当其中某个输入数组中没有元素可以继续访问迭代时,整个迭代过程结束。因此,整个迭代的长度取决于最短数组长度
         如果这种行为不能满足需求,而要以最长的数组为主要便利数组,可以使用itertools.zip_longest()来替代。事例如下:
from itertools import zip_longest

l1 = [1,2,3,4,5]
l2 = ['a','b','c','d','e','f']
for i in zip_longest(l1,l2):
    print(i)
  
 结果:
 (1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
(5, 'e')
(None, 'f')
         也可以指定空的元素类型:
from itertools import zip_longest

l1 = [1,2,3,4,5]
l2 = ['a','b','c','d','e','f','g']
for i in zip_longest(l1,l2,fillvalue=0):
    print(i)

结果:
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
(5, 'e')
(0, 'f')
(0, 'g')
         如果感觉对您有帮助,麻烦点个赞哦

猜你喜欢

转载自blog.csdn.net/weixin_43697214/article/details/107481044