问题
如何同时遍历两个不同长度的列表呢?
今天遇到一个问题需要同时遍历两个列表,但是这两个列表长度却不一定相同,但还是想到了用zip,因为zip可以将对象打包成一个元组,这样就可以一起遍历了。于是我进行了如下尝试:
a = [1,2,3,4,5,6]
b = [11,12,13]
for i,j in zip(a,b):
print(i,j)
输出结果:
1 11
2 12
3 13
但是我还希望有列表a中的5和6,显然这样简单地用zip不大可行
解决方案
使用itertools包中的zip_longest,使用方法如下:
from itertools import zip_longest
a = [1,2,3,4,5,6]
b = [11,12,13]
for i,j in zip_longest(a,b):
print(i,j)
其返回结果为
1 11
2 12
3 13
4 None
5 None
6 None