Можете ли вы сгруппировать данные с помощью группировщика из рецепта itertools ?
from itertools import zip_longest
def grouper(iterable, n, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
# grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return zip_longest(*args, fillvalue=fillvalue)
chunksize = 10
iterable = range(100)
for chunk in grouper(iterable, chunksize, fillvalue=''):
print(chunk)
return:
(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)
...
Обратите внимание, что он никогда не создает список свсе данные!