Jeff Hall schrieb: > I realized after I fired off my response that this was still bugging > me... it appears that the documentation is incorrect > > from 2.1 Built-in Functions (v2.5 in case it matters... a quick search > of bugs doesn't seem to show anything though) > > *reversed*( seq) > > Return a reverse iterator. seq must be an object which supports the > sequence protocol (the __len__() method and the __getitem__() method > with integer arguments starting at |0|). New in version 2.4. > > the above appears to only be true for lists.
Not at all. (I think you misread; the __len__ method must be present on the argument, not the returned object.) > For tuples and strings it > creates a reverse OBJECT which behaves slightly differently (notably by > not including a len() method as you noticed) > > I can't find how to actually create a "tuplereverseiterator" or > "stringreverseiterator" objects... nor does there appear to be a way to > create a "reversed" object from a list... You don't need to. An object returned by reversed() only needs to follow the iterator protocol. Whether it is a listreverseiterator or a general reversed object doesn't matter. In fact, reversed() calls __reversed__ on its argument if it exists, so that custom types may provide their own optimized reverse iterator. Georg _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com