【发布时间】:2016-01-02 17:55:38
【问题描述】:
我正在解决一个编程问题,我需要从数组/列表中的任何给定位置开始并迭代直到我到达起始位置。我考虑过类似方法(dequeue)的循环缓冲区,但我不确定是否有迭代方法可以做到这一点。
给定:
[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 遇到 cycle 但这是一个无限循环。我必须使用下一个方法来获取并停在正确的位置。 Circular list iterator in Python
【问题讨论】:
-
你可以用
data[startPosition:] + data[:startPosition]代替
标签: python