Куски async_generatorPython

Программы на Python
Ответить
Anonymous
 Куски async_generator

Сообщение Anonymous »

Я могу получить фрагменты итератора, выполнив следующие действия:

def get_chunks_it(l, n):
""" Chunks an iterator `l` in size `n`
Args:
l (Iterator[Any]): an iterator
n (int): size of
Returns:
Generator[Any]
"""
iterator = iter(l)
for first in iterator:
yield itertools.chain([first], itertools.islice(iterator, n - 1))


Теперь предположим, что у меня есть асинхронный генератор (python 3.6):

async def generator():
for i in range(0, 10):
yield i
await asyncio.sleep(1)


Как я могу получить фрагменты (скажем, размера 3, которые будут давать [0, 1, 2], [3, 4, 5], [6, 7, 8], [9]) результирующего async_generator, чтобы я мог написать:

async for chunk in get_chunk_it_async(generator(), 3):
print(chunk)


Подробнее здесь: https://stackoverflow.com/questions/446 ... -generator
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»