这里提出了类似的问题(Start index for iterating Python list),但我还需要一件事。
假设我有一个列表 [Sunday, Monday, ...Saturday], 我想从不同的位置开始迭代列表,环绕并完成循环。 例如
a = [Sunday, Monday, ...Saturday]
for i in range(7):
print("----")
for j in (SOMETHING):
print(j)
OUTPUT:
----
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
----
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
----
Tuesday
.
.
.
Friday
我该如何处理?
最佳答案
一种方法是使用 collections.deque
:
from collections import deque
from itertools import repeat
d = deque(['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])
n = 7
for i in repeat(d, n):
print(*i, sep='\n')
print('-----')
i.rotate(-1)
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
-----
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
-----
Tuesday
.
.
.
虽然您可能会发现创建嵌套列表更有趣:
n = 7
l = []
for i in repeat(d, n):
sl = []
for j in i:
sl.append(j)
l.append(sl)
i.rotate(-1)
print(l)
# [['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
# ['Monday', 'Tuesday', 'Wednesday'...
关于python - 如何从不同的索引开始迭代列表,并环绕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57919803/