Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python 优先队列

作者:紛手也是一茽の媄丽   发布日期:2025-02-21   浏览:59

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 随机字符串

大家都在看

python时间格式

python ord和chr

python中的yield

python自定义异常

python list.pop

python的for i in range

npm config set python

python代码简单

python读取文件夹

python中turtle

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站