Good use for itertools.dropwhile and itertools.takewhile

Neil Cerutti neilc at
Wed Dec 5 19:16:04 CET 2012

On 2012-12-05, Nick Mellor <thebalancepro at> wrote:
> Hi Neil,
> Here's some sample data. The live data is about 300 minor
> variations on the sample data, about 20,000 lines.

Thanks, Nick.

This slight variation on my first groupby try seems to work for
the test data.

def prod_desc(s):
    prod = []
    desc = []
    for k, g in itertools.groupby(s.split(),
            key=lambda w: any(c.islower() for c in w)):
        if prod or k:
    return [' '.join(prod), ' '.join(desc)]

Neil Cerutti

More information about the Python-list mailing list