Big time WTF with generators - bug?

James Stroud jstroud at
Wed Feb 13 11:15:20 CET 2008

Paul Rubin wrote:
> Peter Otten <__peter__ at> 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,
   keyed = izip(imap(keyer, table), table)
   filtered = ifilter(selector, keyed)
   serialized = groupby(filtered, series_keyfunc)
   return dekeyed(serialized, keyfunc)

Thank you!


James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

More information about the Python-list mailing list