At 17:09 05.11.2003 +0100, Alex Martelli wrote: >On Wednesday 05 November 2003 03:54 pm, Phillip J. Eby wrote: > ... > > >reverse iteration. The iterator object has no way of knowing in advance > > >that it is going to be called by reversed(). > > > > Why not change enumerate() to return an iterable, rather than an > > iterator? Then its __reversed__ method could attempt to delegate to the > > underlying iterable. Is it likely that anyone relies on enumerate() being > > an iterator, rather than an iterable? I think he was wondering whether people rely on enumerate([1,2]).next i = enumerate([1,2]) i is iter(i) working , vs. needing iter(enumerate([1,2]).next I think he was proposing to implement enumerate as class enumerate(object): def __init__(self,iterable): self.iterable = iterable def __iter__(self): i = 0 for x in self.iterable: yield i,x i += 1 def __reversed__(self): rev = reversed(self.iterable) try: i = len(self.iterable)-1 except (TypeError,AttributeError): i = -1 for x in rev: yield i,x i -= 1
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