indexed() generator
Delaney, Timothy
tdelaney at avaya.com
Wed Jan 23 18:21:47 EST 2002
More information about the Python-list mailing list
Wed Jan 23 18:21:47 EST 2002
- Previous message (by thread): indexed() generator
- Next message (by thread): indexed() generator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
> From: me at mikerobin.com [mailto:me at mikerobin.com] > > mlh at vier.idi.ntnu.no (Magnus Lie Hetland) wrote in message > news:<slrna4tk97.bh6.mlh at vier.idi.ntnu.no>... > > In article > <mailman.1011750813.24541.python-list at python.org>, Delaney, > > Timothy wrote: > > > > >A perhaps better method would be: > > > > > >def indexed (seq, start=0) > > > i = start > > > for obj in seq: > > > yield i, obj > > > i += 1 > > > > > >(sometimes a non-zero start index is wanted). > > > > Perhaps you should add a step while you're at it? And maybe > even stop > > (in case you don't want the entire sequence)? Just keeping some > > similarity with range()... I thought about this, and the similarity to range(), but decided against it. I was thinking more of the idiom: for i, value in indexed(seq) i += 5 print i, value which is a not unusual occurrance. Howevr, it's probably too unusual to be included in a standard implementation, now I think about it further. > ...and unless I'm missing something, I assume that you want > to start returning > objects at index 'start', not a 0. E.g.: > > def indexed (seq, start=0) > i = start > while i < len(seq): > yield i, seq[i] > i += 1 That was definitely not the idea - "start" is probably the wrong name for the parameter - perhaps "addOffset"? In any case, the above would not work with any iterator - only a true sequence. Tim Delaney
- Previous message (by thread): indexed() generator
- Next message (by thread): indexed() generator
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list