On Fri, 25 Mar 2005 08:46:12 -0800, Michael Spencer <[EMAIL PROTECTED]> wrote:

>Tim Hochberg wrote:
>> Jordan Rastrick wrote:
>> 
>
>itertools.groupby enables you to do this, you just need to define a suitable 
>grouping function, that stores its state:
>
>For example, if short lines should be appended to the previous line:
>
>from itertools import groupby
>linesource = """\
>Here is a long line, long line, long line
>and this is short
>and this is short
>Here is a long line, long line, long line
>and this is short""".splitlines()
>
>def record(item, seq = [0]):
>     if len(item) > 20:
>         seq[0] +=1
>     return seq[0]
>
>
>  >>> for groupnum, lines in groupby(linesource, record):
>  ...     print "".join(lines)
>  ...
>  Here is a long line, long line, long lineand this is shortand this is short
>  Here is a long line, long line, long lineand this is short
>  >>>
Nice, but I think "record" is a bit opaque semantically.
How about group_id or 
generate_incrementing_unique_id_for_each_group_to_group_by or such?

Regards,
Bengt Richter
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to