Как расставлять приоритеты у задач
Python
Middle
Циан
Как расставлять приоритеты у задач
Ответы
В Python для управления приоритетами задач часто используют модуль `queue.PriorityQueue` или `heapq`.
**PriorityQueue** (потокобезопасный):
```
from queue import PriorityQueue
q = PriorityQueue()
q.put((1, 'Высокий приоритет')) # (приоритет, задача)
q.put((3, 'Низкий приоритет'))
q.put((2, 'Средний приоритет'))
while not q.empty():
print(q.get()[1]) # Вывод: Высокий → Средний → Низкий
```
**heapq** (более легковесный):
```
import heapq
tasks = []
heapq.heappush(tasks, (1, 'Важная задача'))
heapq.heappush(tasks, (3, 'Несрочная задача'))
heapq.heappush(tasks, (2, 'Средняя задача'))
while tasks:
print(heapq.heappop(tasks)[1])
```
**Ключевые моменты:**
- Чем меньше число, тем выше приоритет.
- Для сложных критериев можно использовать кортежи или классы с `__lt__`.
- `PriorityQueue` подходит для многопоточности, `heapq` — для однопоточных сценариев.