2009/10/9 Oxymoron <[email protected]>: > On Fri, Oct 9, 2009 at 11:02 PM, Kent Johnson <[email protected]> wrote: >> On Fri, Oct 9, 2009 at 3:54 AM, Stefan Lesicnik <[email protected]> wrote: >> >> You can easily keep track of the previous item by assigning it to a >> variable. For example this shows just the increasing elements of a >> sequence: >> >> In [22]: items = [0, 1, 3, 2, 8, 5, 9 ] >> >> In [23]: last = None >> >> In [24]: for item in items: >> ....: if last is None or item > last: >> ....: print item >> ....: last = item > > Darn... this is what happens when you're stuck on one solution > (referring to my index-only ways in the last post) - you miss other > obvious ways, duh * 10. Apologies for the unnecessarily complicated > exposition on iterables above. :-( > > > > -- > There is more to life than increasing its speed. > -- Mahatma Gandhi > _______________________________________________ > Tutor maillist - [email protected] > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor >
Another way, if you just want to track two consecutive items (which probably won't help in this case, but is useful to know), is to zip together two iters over the list, one omitting the first item, the other omitting the last: >>> lst = range(5) >>> for v1, v2 in zip(lst[:-1], lst[1:]): ... print v1, v2 ... 0 1 1 2 2 3 3 4 4 5 If you're concerned about memory usage (zip generates an intermediate list, twice the size of the original), you can use itertools.izip, which is the same except it doen't generate the list: it's xrange to zip's range. Also, rather than mucking around with xrange() and len(), I'd always recommend using enumerate: e.g. Your example of for i in xrange(0, len(x)-1): print x[i], x[i+1] becomes for i, v in enumerate(x[:-1]): #omitting last value in list to avoid IndexError print v, x[i+1] I've got to say that of the two, I prefer the zip method: it looks cleaner, at least to my eyes. -- Rich "Roadie Rich" Lovely There are 10 types of people in the world: those who know binary, those who do not, and those who are off by one. _______________________________________________ Tutor maillist - [email protected] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
