2016-07-07 48 views
0

元素我有一個像下面輪循選擇列表

list1的= [CONT1,CONT2,CONT4,CONT5]

如何實現在python循環賽邏輯來選擇的元素的列表一個列表, 每次我嘗試訪問元素

回答

2

我建議使用itertools.cycle

使迭代器從迭代中返回元素並保存每個元素的副本。當迭代器耗盡時,返回 保存的副本中的元素。重複無限期地。

使用範例:

seq = [1,2,3,4] 
round_robin = itertools.cycle(seq) 

assert round_robin.next() == 1 
assert round_robin.next() == 2 
assert round_robin.next() == 3 
assert round_robin.next() == 4 
assert round_robin.next() == 1 
assert round_robin.next() == 2 
assert round_robin.next() == 3 
assert round_robin.next() == 4 
+0

我認爲這不工作我想要的方式。如果我打印的是round_robin.next(),它會連續打印結果爲「1」。它不會遍歷範圍 – user3625349

+0

如果每次都重新創建生成器,它總是以第一個值開始。您需要創建'round_robin'一次,然後在同一個對象上多次調用。 'while True:round_robin = itertools.cycle(seq)print round_robin.next()'不會。 'round_robin = itertools.cycle(seq)while True:print round_robin.next()'就好了。 –

+0

我希望它每次我調用這個函數時,它應該返回一個循環值(所以也應該繼續無限期迭代) – user3625349