On Dec 27, 7:24 pm, Terry Jones <[EMAIL PROTECTED]> wrote: > >>>>> "Kugutsumen" == Kugutsumen <[EMAIL PROTECTED]> writes: > > Kugutsumen> On Dec 27, 7:07 pm, Paul Hankin <[EMAIL PROTECTED]> wrote: > > >> On Dec 27, 11:34 am, Kugutsumen <[EMAIL PROTECTED]> wrote: > > >> > I am relatively new the python language and I am afraid to be missing > >> > some clever construct or built-in way equivalent to my 'chunk' > >> > generator below. > > Kugutsumen> Thanks, I am going to take a look at itertools. I prefer the > Kugutsumen> list version since I need to buffer that chunk in memory at > Kugutsumen> this point. > > Also consider this solution from O'Reilly's Python Cookbook (2nd Ed.) p705 > > def chop(iterable, length=2): > return izip(*(iter(iterable),) * length) > > Terry
> [snip code] > > Try this instead: > > import itertools > > def chunk(iterator, size): > # I prefer the argument order to be the reverse of yours. > while True: > chunk = list(itertools.islice(iterator, size)) > if chunk: yield chunk > else: break > Steven, I really like your version since I've managed to understand it in one pass. Paul's version works but is too obscure to read for me :) Thanks a lot again. -- http://mail.python.org/mailman/listinfo/python-list