#Circle through list # class CircleList(list): """A list to circle throught""" # itertools.circle only goes one way def __init__(self, l, i=0, stop=None): super(CircleList, self).__init__(l) self.i = i self.stop = stop def current(self): return self[self.i] def previous(self): self.i -= 1 if self.i < 0: self.i = 0 if self.stop else len(self)-1 return self[self.i] def next(self): self.i += 1 if self.i > len(self)-1: self.i = len(self)-1 if self.stop else 0 return self[self.i]