基本上我有这两个列表
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
喜欢这个。
答案 0 :(得分:8)
您可以使用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
答案 1 :(得分:5)
没有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)
答案 2 :(得分:1)
ng
答案 3 :(得分:0)
附加到已接受的答案,
如果列表长度未知。
from itertools import cycle
A = [1,2,3,4,5,6,7,8,9]
B = ["A","B","C"]
zip_list = list(zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B))
for i, j in zip_list :
print(i, j)
1 A
2 B
3 C
4 A
5 B
6 C
7 A
8 B
9 C
[Program finished]