在这里提出了类似的问题(用于迭代Python列表的开始索引),但是我还需要一件事。
假设我有一个列表[周日,周一,...周六],并且我想从不同的位置开始迭代该列表,环绕并完成循环。例如
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'...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句