我知道我可以执行以下操作:
files = ['a', 'b', 'c', 'd', 'e', 'f']
for ind, file in enumerate(files):
print(ind, file)
(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
(4, 'e')
(5, 'f')
我想生成第二个索引,该索引在列表的长度上重复0到n-1
之间。例如,如果n=2
print(ind, file, ind2)
产生
(0, 'a', 0)
(1, 'b', 1)
(2, 'c', 0)
(3, 'd', 1)
(4, 'e', 0)
(5, 'f', 1)
,如果n=3
(0, 'a', 0)
(1, 'b', 1)
(2, 'c', 2)
(3, 'd', 0)
(4, 'e', 1)
(5, 'f', 2)
答案 0 :(得分:4)
这与模运算符无关紧要:
for ind, file in enumerate(files):
print(ind, file, ind % 3)
答案 1 :(得分:2)
您可以结合使用itertools.cycle
和zip
。
from itertools import cycle
files = ['a', 'b', 'c', 'd', 'e', 'f']
n = 3
print(list(zip(range(len(files)), files, cycle(range(n)))))
这将输出:
[(0, 'a', 0), (1, 'b', 1), (2, 'c', 2), (3, 'd', 0), (4, 'e', 1), (5, 'f', 2)]