Задать вопрос

Как обрабатывать другие элементы в цикле for во время использования time.sleep()?

Не сильно дружу с асинхронностью, но мне это нужно.
Как сделать так, чтобы в цикле for обрабатывались другие элементы, пока один находится под действием time.sleep()?
Примерно так:
for element in list:
    if element == 1:
        pass
    elif element == 2:
        time.sleep(5000)
        list.remove(element)
        #время большое, а нужно чтобы и другие обрабатывались
  • Вопрос задан
  • 120 просмотров
Подписаться 3 Простой 2 комментария
Решения вопроса 1
Используйте асинк, примерный код.
import asyncio
from time import time

els = list(range(20))


async def rm_list(v):
    await asyncio.sleep(5)
    print(v)


async def _main():
    await asyncio.gather(*(
        rm_list(value) for value in els
    ))


start = time()
loop = asyncio.get_event_loop()
loop.run_until_complete(_main())
loop.close()
print(time() - start)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы