breamore...@gmail.com wrote, on January 09, 2017 8:32 AM > > On Monday, January 9, 2017 at 2:22:19 PM UTC, Tim Chase wrote: > > On 2017-01-08 22:58, Deborah Swanson wrote: > > > 1) I have a section that loops through the sorted data, compares two > > > adjacent rows at a time, and marks one of them for deletion if the
> > > rows are identical. > > > and my question is whether there's a way to work with two adjacent > > > rows without using subscripts? > > > > I usually wrap the iterable in something like > > > > def pairwise(it): > > prev = next(it) > > for thing in it: > > yield prev, thing > > prev = thing > > > > for prev, cur in pairwise(records): > > compare(prev, cur) > > > > which I find makes it more readable. > > > > -tkc > > Or from > https://docs.python.org/3/library/itertools.ht> ml#itertools-recipes:- > > def pairwise(iterable): > "s -> (s0,s1), (s1,s2), (s2, s3), ..." > a, b = tee(iterable) > next(b, None) > return zip(a, b) > > This and many other recipes are available in the > more-itertools module which is on pypi. Thanks, I'll keep this since I seem to do pairwise comparisons a lot. I'm going to try using set or OrderedDict for the current problem, per Peter's suggestion, but if I can't make that work, this surely will. -- https://mail.python.org/mailman/listinfo/python-list