import heapq
# 创建一个空的优先队列
priority_queue = []
# 向优先队列中添加元素 (值, 优先级)
# 注意: Python 的 heapq 模块实现的是最小堆,因此优先级越小的元素会被先处理
heapq.heappush(priority_queue, (1, 'task1'))
heapq.heappush(priority_queue, (3, 'task2'))
heapq.heappush(priority_queue, (2, 'task3'))
# 从优先队列中取出元素
# 取出的元素是优先级最高的(即优先级数值最小的)
while priority_queue:
priority, task = heapq.heappop(priority_queue)
print(f'执行任务: {task}, 优先级: {priority}')
# 输出结果:
# 执行任务: task1, 优先级: 1
# 执行任务: task3, 优先级: 2
# 执行任务: task2, 优先级: 3
heapq
是 Python 标准库中的一个模块,用于实现最小堆(也称为优先队列)。最小堆的特点是每次弹出的都是堆中最小的元素。(优先级, 任务)
来表示每个任务及其优先级。heapq.heappush()
用于将任务推入优先队列,而 heapq.heappop()
则用于弹出并返回优先级最高的任务。heapq
实现的是最小堆,所以优先级数值越小的任务会被优先处理。上一篇:python 除法取整
下一篇:python 随机字符串
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站