[Python-Dev] iter.index() (original) (raw)
Christian Stork python-dev-list at cstork.org
Sun Apr 18 22:21:07 EDT 2004
- Previous message: [Python-Dev] iter.index()
- Next message: [Python-Dev] iter.index()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sun, Apr 18, 2004 at 10:08:25PM -0400, Bob Ippolito wrote:
On Apr 18, 2004, at 9:53 PM, Christian Stork wrote: >Hi, > >I wanted to do something like > > i = itertools.chain(list1, list2).index(elem) > >but that gave me > > ... > AttributeError: 'itertools.chain' object has no attribute 'index' > >If I use the operator module it works just fine. > > i = operator.indexOf(itertools.chain(list1, list2), elem) > >Why not add the index method to iterator objects? Of course, >internally >only next() is used by the default implementation. An iterator mutates each time you call its next(). Your call to indexOf does one of three things: exhaust some of your iterator and return a useless integer,
Why useless? It returns the index. Why do I have to build a new concatinated list (or my own special index function) in order to get that information?
exhaust all of your iterator and raise an exception,
Yep, just as it would for lists.
or never return.
Well, that's the risk we take with iterators, but in my case I'm certain of two sufficient termination criteria: the iterator is finite and I know that elem is in it.
If you want an object that acts like a list, you should use a list.
I don't see anything inherently "listy" about index(). It just counts how many elements there are to reach elem. And obviously the functionality is already there in the operator module. I'm just proposing a little convenience.
-- Chris Stork <> Support eff.org! <> http://www.ics.uci.edu/~cstork/ OpenPGP fingerprint: B08B 602C C806 C492 D069 021E 41F3 8C8D 50F9 CA2F
- Previous message: [Python-Dev] iter.index()
- Next message: [Python-Dev] iter.index()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]