Putting *n* after the *iterable* matches the signature of other itertools
and recipes. Also, it reads better.
Suggested by Ezio Melotti.
next(b, None)
return zip(a, b)
- def grouper(n, iterable, fillvalue=None):
+ def grouper(iterable, n, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
- # grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
+ # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return zip_longest(*args, fillvalue=fillvalue)