John> This class will lazily convert an interator to a list on the first pass John> and then iterate over the saved list on all subsequent passes. John> class reiter(object): John> def __init__(self, iterable): John> self.iterator = iter(iterable) John> self.cache = [] John> def __iter__(self): John> if self.iterator is None: John> return iter(self.cache) John> else: John> return self John> def next(self): John> try: John> element = self.iterator.next() John> self.cache.append(element) John> return element John> except StopIteration: John> self.iterator = None John> raise Maybe I'm missing something here, but doesn't this fail if you try to restart it before it has entirely consumed the input? -- Andrew Koenig, ark@research.att.com, http://www.research.att.com/info/ark
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4