python - 如何从不同的索引开始迭代列表,并环绕

标签 python list

这里提出了类似的问题(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/

相关文章:

python - Scrapy 的 XPath 中的 OR 条件

python - 在列表上使用函数

python - "Flatten"list 包含lists of lists to lists of lists

python - Itertools 与索引的组合

python - 如何将数据框中的某些行替换为其他数据框中具有附加列的相应行

python - 使用 numpy 数组连接列向量

python - 动态数据透视表的有效方法

python - Pandas - 图像到 DataFrame

python - 如何对 df1 中与 df2 中的另一个值匹配的值求和

r - 列表数据框类上匹配日期的百分比计算