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)



...