Pre-PEP: reverse iteration methods
Peter Otten
__peter__ at web.de
Wed Sep 24 14:46:16 EDT 2003
Raymond Hettinger wrote:
> * It behaves badly with infinite iterators as inputs
[...]
> def ireverse(obj):
> assert not hasattr(obj, 'keys')
# let inifinite iterators identify themselves
assert not hasattr(obj, 'infinite')
> try:
> for i in xrange(len(obj)-1, -1, -1):
> yield obj[i]
> except (AttributeError, TypeError):
> x = list(obj) # XXX fails with infinite iterators
> x.reverse()
> for elem in x:
> yield elem
As infinite iterators are rare, it would not be too cumbersome to let them
identify themselves as such.
Peter
More information about the Python-list
mailing list