Moduł heapq
w Pythonie to biblioteka oferująca możliwości pracy z kopcem (ang. heap), który jest rodzajem drzewa binarnego. Kopce są używane głównie do implementacji priorytetowych kolejek. W Pythonie kopiec zawsze jest reprezentowany jako lista, a moduł heapq
umożliwia zarządzanie tą listą w sposób, który utrzymuje właściwości kopca. Najmniejszy element znajduje się zawsze na początku listy. W tym artykule przyjrzymy się, jak wykorzystać moduł heapq
do pracy z kopcem w Pythonie.
Przykład użycia modułu heapq
Załóżmy, że chcemy zorganizować listę zadań do wykonania wraz z ich priorytetami. Zadania z niższym priorytetem powinny być wykonane jako pierwsze. Pokażemy, jak to zrobić wykorzystując kopiec min za pomocą modułu heapq
.
import heapq # Importowanie modułu heapq
# Inicjalizacja pustej listy, która będzie naszym kopcem
tasks = []
# Dodanie zadań do kopca z określeniem priorytetu
# (priorytet, 'opis zadania')
heapq.heappush(tasks, (2, 'Napisać raport'))
heapq.heappush(tasks, (1, 'Przygotować się do spotkania'))
heapq.heappush(tasks, (3, 'Odpowiedzieć na e-maile'))
# Wyświetlenie i usunięcie zadań z kopca zgodnie z priorytetem
while tasks:
priority, task = heapq.heappop(tasks)
print(f"Zadanie do wykonania: {task} (priorytet: {priority})")
W powyższym przykładzie najpierw importujemy moduł heapq
. Następnie tworzymy pustą listę tasks
, która będzie służyć jako nasz kopiec. Za pomocą funkcji heapq.heappush()
dodajemy do kopca zadania wraz z ich priorytetami, gdzie pierwszy element krotki to priorytet, a drugi to opis zadania. Funkcja heapq.heappop()
służy do usuwania i zwracania zadania z najniższym priorytetem z kopca, czyli zawsze z początku listy.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Python w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.