Python heapq.heappop() Method (original) (raw)

Last Updated : 11 Jun, 2026

heapq.heappop() function removes and returns the smallest element from a heap. After removing the element, the heap is automatically rearranged to maintain the heap property.

**Example: The following example removes the smallest element from a heap.

Python `

import heapq

h = [5, 1, 8, 3] heapq.heapify(h)

print(heapq.heappop(h)) print(h)

`

**Explanation: heapq.heappop(h) removes and returns the smallest element (1). The remaining elements are rearranged to maintain the heap property.

Syntax

heapq.heappop(heap)

Examples

**Example 1: This example creates a heap, removes the smallest element and displays both the removed value and the updated heap.

Python `

import heapq

h = [] for x in [5, 1, 8, 3]: heapq.heappush(h, x)

v = heapq.heappop(h) print(v) print(h)

`

**Explanation: heapq.heappop(h) removes the minimum element from h and returns it. The remaining elements are automatically reorganized into a valid heap.

**Example 2: This example stores tasks as (priority, task) tuples and removes the task with the highest priority (lowest priority number).

Python `

import heapq

pq = [] heapq.heappush(pq, (2, "Task A")) heapq.heappush(pq, (1, "Task B")) heapq.heappush(pq, (3, "Task C"))

p, t = heapq.heappop(pq) print(t)

`

**Explanation: heapq.heappop(pq) removes the tuple with the smallest priority value. Here, (1, "Task B") is removed first.

**Example 3: This example uses negative values to simulate max-heap behavior and removes the largest element.

Python `

import heapq

h = [] for x in [5, 1, 8, 3]: heapq.heappush(h, -x)

v = -heapq.heappop(h) print(v) print([-x for x in h])

`

**Explanation: Values are inserted as negatives using heapq.heappush(). -heapq.heappop(h) removes the largest original value and converts it back to a positive number.