在循环中是否有python函数,在到达列表的最后一个索引后,它将再次转到第一个索引,然后循环重新启动?

在循环中是否有python函数,在到达列表的最后一个索引后,它将再次转到第一个索引,然后循环重新启动?,python,list,iterator,Python,List,Iterator,我知道这是一个关于算法的奇怪问题,但这是一个在我脑海中持续了几天的问题。看到下面的代码,我有一个从1到31天的列表,我想做一个循环来打印它们,当n(我使用n作为列表的索引(只是一个示例))等于最后一个索引时,之后,它将重置为0,循环将再次重新启动 我试图通过编写这段代码来实现这一点,但我想问您是否有内置函数或其他不太长的函数,或者是真正致力于实现这一点的东西 以一个游戏为例,在这个假想的游戏中有4个玩家,因此有4个回合,列表,即[0,1,2,3],将继续迭代,循环到达3后,它将返回到0 有没有办

我知道这是一个关于算法的奇怪问题,但这是一个在我脑海中持续了几天的问题。看到下面的代码,我有一个从1到31天的列表,我想做一个循环来打印它们,当n(我使用n作为列表的索引(只是一个示例))等于最后一个索引时,之后,它将重置为0,循环将再次重新启动

我试图通过编写这段代码来实现这一点,但我想问您是否有内置函数或其他不太长的函数,或者是真正致力于实现这一点的东西

以一个游戏为例,在这个假想的游戏中有4个玩家,因此有4个回合,列表,即[0,1,2,3],将继续迭代,循环到达3后,它将返回到0

有没有办法做到这一点(具体的方法)

输出:


通常不是这样,因为迭代器没有任何内置的重置方法。顺便说一句,您总是跳过每月的第1天和第31天。@Peymamohsenikiasari这有什么关系?这里没有递归,只是循环。是的,非常感谢!我只是在找那个
from time import sleep


days = [day for day in range(1, 32)]

while True:
    for n in range(0, 31):
        print(days[n])
        sleep(0.1)
from itertools import cycle

for item in cycle([0, 1, 2, 3]):
    print(item)
0
1
2
3
0
1
2
3
0
1
...