eof
Duncan Booth
duncan.booth at invalid.invalid
Thu Nov 22 09:00:10 EST 2007
Boris Borcic <bborcic at gmail.com> wrote:
> Duncan Booth wrote:
>> import itertools
>> def chunks(f, size):
>> iterator = iter(f)
>> def onechunk(line):
>> yield line
>> for line in itertools.islice(iterator, size-1):
>> yield line
>> for line in iterator:
>> yield onechunk(line)
>
> Quite simpler, and provides chunk# as well :)
>
> def chunked(chunksize,f) :
> from itertools import count,groupby
> counter=count(chunksize).next
> return groupby(f,lambda _ : counter()/chunksize)
>
Nice, thank you. But why 'count(chunksize)' rather than just 'count()'?
Does it make a difference anywhere? And I'd recommend using // rather than
/ otherwise it breaks if you do 'from __future__ import division':
def chunked(chunksize,f) :
from itertools import count,groupby
counter=count().next
return groupby(f,lambda _ : counter()//chunksize)
More information about the Python-list
mailing list