Boris Borcic <[EMAIL PROTECTED]> 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) -- http://mail.python.org/mailman/listinfo/python-list