Del*_*gan 4 python indexing cycle python-itertools
我需要遍历一个列表并在到达最后一个项目时返回到第一个元素。
在cycle从对象itertools是专为这一点。
myList = [1,2,3,4,5,6,7,8,9]
i = 0
for item in cycle(myList):
index = i%9
print (index)
i += 1
Run Code Online (Sandbox Code Playgroud)
除了使用i变量还有其他方法吗?
小智 5
您可以使用enumerate:
for i, item in enumerate(cycle(myList)):
Run Code Online (Sandbox Code Playgroud)
下面是一个演示:
>>> from itertools import cycle
>>> for i, item in enumerate(cycle([1, 2, 3])):
... print i, item
...
0 1
1 2
2 3
3 1
4 2
5 3
Run Code Online (Sandbox Code Playgroud)
你甚至可以给出一个具体的数字开始:
for i, item in enumerate(cycle([1, 2, 3]), 10): # Start at 10
Run Code Online (Sandbox Code Playgroud)
阅读@DSM 的评论,我意识到您可能想要将调用翻转到cycle和enumerate:
>>> for i, item in cycle(enumerate([1, 2, 3])):
... print i, item
...
0 1
1 2
2 3
0 1
1 2
2 3
Run Code Online (Sandbox Code Playgroud)
这将导致i引用item列表中的索引而不是充当计数器变量。