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
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