我正在解決一個編程問題,我需要在數組/列表中的任何給定位置處啓動並迭代直到我達到起始位置。我想過像循環(dequeue)這樣的循環緩衝區,但我不確定是否有迭代方法,它會這樣做。Python中的循環迭代器
考慮:
[1,10,20]
所以當我開始在位置迭代:1我想迭代輸出爲:
10,20,1
我現在解決方案:
startPosition = 1
data = [1,10,20]
for i in range(0, 3):
pos = (startPosition+i)%3
print data[pos]
還有沒有其他優雅的解決方案?還是一個容器呢?
研究:
我碰到週期從itertools但是這是一個永無止境的loop.I將不得不使用下一個方法來獲得,並在正確的位置停止。 Circular list iterator in Python
您可以使用'data [startPosition:] + data [:startPosition]'代替 –