Paul Rubin wrote: > Peter Otten <[EMAIL PROTECTED]> writes: >> You are trying to store a group for later consumption here. > > Good catch, the solution is to turn that loop into a generator, > but then it has to be consumed very carefully.
Brilliant suggestion. Worked like a charm. Here is the final product: def dekeyed(serialized, keyfunc): for name, series in serialized: grouped = groupby(series, keyfunc) regrouped = ((k, (v[1] for v in g)) for (k,g) in grouped) yield (name, regrouped) def serialize(table, keyer=_keyer, selector=_selector, keyfunc=_keyfunc, series_keyfunc=_series_keyfunc): keyed = izip(imap(keyer, table), table) filtered = ifilter(selector, keyed) serialized = groupby(filtered, series_keyfunc) return dekeyed(serialized, keyfunc) Thank you! James -- James Stroud UCLA-DOE Institute for Genomics and Proteomics Box 951570 Los Angeles, CA 90095 http://www.jamesstroud.com -- http://mail.python.org/mailman/listinfo/python-list