Co to jest moduł “heapq” w Pythonie?

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.

Scroll to Top