On Thu, 27 Dec 2007 03:34:57 -0800, Kugutsumen 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.
>
> def chunk(size, items):
> """generate N items from a generator."""
[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
And in use:
>>> it = chunk(iter(xrange(30)), 7)
>>> for L in it:
... print L
...
[0, 1, 2, 3, 4, 5, 6]
[7, 8, 9, 10, 11, 12, 13]
[14, 15, 16, 17, 18, 19, 20]
[21, 22, 23, 24, 25, 26, 27]
[28, 29]
--
Steven
--
http://mail.python.org/mailman/listinfo/python-list