Skip to content

Instantly share code, notes, and snippets.

@renzon
Created December 19, 2017 19:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save renzon/23ee168a76005101e2816638c5017174 to your computer and use it in GitHub Desktop.
Save renzon/23ee168a76005101e2816638c5017174 to your computer and use it in GitHub Desktop.
from itertools import groupby
from operator import itemgetter
def generate_batch(generator, batch_size=10):
if batch_size <= 1:
yield from generator
mod_generator = list((i // batch_size, v) for i, v in enumerate(generator))
for mod, tpl in groupby(mod_generator, itemgetter(0)):
yield (v for _, v in tpl)
if __name__ == '__main__':
for batch in generate_batch('abcdef', 2):
print(list(batch))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment