Python generator that groups another iterable into groups of N

generator, python, std

Solution

See the `grouper` recipe in the docs for the `itertools` package

def grouper(n, iterable, fillvalue=None):
  "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
  args = [iter(iterable)] * n
  return izip_longest(fillvalue=fillvalue, *args)

(However, this is a duplicate of quite a few questions.)

Problem

I'm looking for a function that takes an iterable `i` and a size `n` and yields tuples of length `n` that are sequential values from `i`: ``` x = [1,2,3,4,5,6,7,8,9,0] [z for z in TheFunc(x,3)] ``` gives ``` [(1,2,3),(4,5,6),(7,8,9),(0)] ``` Does such a function exist in the standard library? If it exists as part of the standard library, I can't seem to find it and I've run out of terms to search for. I could write my own, but I'd rather not.

Original source

Related problems