Python从循环的中间到开始之前进行迭代

Python从循环的中间到开始之前进行迭代,python,list,iteration,cycle,Python,List,Iteration,Cycle,我一直在编写一个棋盘游戏来练习python。我使用一个循环来执行如下顺序: turncycle = [0,1,2,3] for turnindex in cycle(turncycle): #. #...turn stuff #...turnindex is used for active player #. 我想做的是给一个回合索引,开始一个小回合,在那里事件卡触发,他们必须做些什么。有没有办法重新生成列表,以便我可以将[0,1,2,3]更改为[1,2,3,0

我一直在编写一个棋盘游戏来练习python。我使用一个循环来执行如下顺序:

turncycle = [0,1,2,3]
for turnindex in cycle(turncycle):
    #.
    #...turn stuff
    #...turnindex is used for active player
    #.

我想做的是给一个回合索引,开始一个小回合,在那里事件卡触发,他们必须做些什么。有没有办法重新生成列表,以便我可以将[0,1,2,3]更改为[1,2,3,0]或从1,2或3开始循环,然后循环其余部分一次

def next_cycle(lst):
    return turncycle[1:] + turncycle[:1]

turncycle = [0, 1, 2, 3]

for turnindex in range(len(turncycle)):
    turncycle = next_cycle(turncycle)
    print turncycle

像这样的怎么样

def next_cycle(lst):
    return turncycle[1:] + turncycle[:1]

turncycle = [0, 1, 2, 3]

for turnindex in range(len(turncycle)):
    turncycle = next_cycle(turncycle)
    print turncycle

从树上拼凑出一些东西


循环
可能需要根据您认为的
开始
参数的含义进行一些调整


它可能被重命名为roll()


循环
可能需要根据您认为的
开始
参数的含义进行一些调整


它可能会被重命名为
roll()

turncycle[1::+[turncycle[0]]也许?或者使用numpy:
np.roll(turncycle,1)
不知道你的意思。所需行为的一个示例是很好的。turncycle[1:][turncycle[0]]也许?或者使用numpy:
np.roll(turncycle,1)
不确定您的意思。理想行为的一个例子是很好的。Imho
turncycle[1:][turncycle[:1]
看起来更好,而且很容易推广。Imho
turncycle[1:][turncycle[:1]
看起来更好,也很容易推广。