python-3.x - python 3.x - 如何遍历两个列表,并回收第二个列表,直到第一个列表结束

我有2个列表


listone = ['a', 'b', 'c', 'd', 'e', 'f', 'j']


listtwo = ['1', '2', '3']



我想同步迭代两个列表,每当最短的列表结束(listtwo中)再次重新启动,直到listone完成,例如:


a 1


b 2


c 3


d 1


e 2


f 3


j 1



时间:

你可以使用itertools.cycle


from itertools import cycle



for i, j in zip(listone, cycle(listtwo)):


 print(i, j)



输出:


a 1


b 2


c 3


d 1


e 2


f 3


j 1



没有itertools.cycle()或创建辅助列表:


listone = ['a', 'b', 'c', 'd', 'e', 'f', 'j']


listtwo = ['1', '2', '3']


N = len(listtwo)



for index, elem in enumerate(listone):


 elem2 = listtwo[index % N]


 print(elem, elem2)




from math import ceil


listone = ['a', 'b', 'c', 'd', 'e', 'f', 'j']


listtwo = ['1', '2', '3']


listtwo_augmented = listtwo * ceil(len(listone)/len(listtwo))


for e1, e2 in zip(listone, listtwo_augmented):


 print(e1, e2)



...