Circular List Iterator In Python
Answer : Use itertools.cycle , that's its exact purpose: from itertools import cycle lst = ['a', 'b', 'c'] pool = cycle(lst) for item in pool: print item, Output: a b c a b c ... (Loops forever, obviously) In order to manually advance the iterator and pull values from it one by one, simply call next(pool) : >>> next(pool) 'a' >>> next(pool) 'b' The correct answer is to use itertools.cycle. But, let's assume that library function doesn't exist. How would you implement it? Use a generator: def circular(): while True: for connection in ['a', 'b', 'c']: yield connection Then, you can either use a for statement to iterate infinitely, or you can call next() to get the single next value from the generator iterator: connections = circular() next(connections) # 'a' next(connections) # 'b' next(connections) # 'c' next(con...