I'm generally using something like: class IndexLoop: def __init__ (self, list): self.list = list def __getitem__ (self, index): return index, self.list [index] use as in for index, entry in IndexLoop (list): ... Daniel