当前位置: 首页 > news >正文

飘逸的python - 实现一个极简的优先队列

一个队列至少满足2个方法,put和get.

借助最小堆来实现.

这里按"值越大优先级越高"的顺序.

#coding=utf-8
from heapq import heappush, heappop
class PriorityQueue:
    def __init__(self):
        self._queue = []

    def put(self, item, priority):
        heappush(self._queue, (-priority, item))

    def get(self):
        return heappop(self._queue)[-1]

q = PriorityQueue()
q.put('world', 1)
q.put('hello', 2)
print q.get()
print q.get()


相关文章:

  • Linux常用查找命令
  • 留存- angularjs 弹出框 $modal
  • 矩阵相乘,向量相乘,矩阵向量相乘
  • Spring中基于Java的配置@Configuration和@Bean用法
  • 阿里技术面试题全面覆盖?不服,你来补充
  • Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息
  • Android新手引导View
  • [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv
  • 删除表A的记录时,Oracle 报错:“ORA-02292:违反完整约束条件(XXX.FKXXX)- 已找到子记录...
  • Redis部署及参数笔记
  • 关于二叉树的遍历梳理(递归、非递归、线索二叉树)
  • JSONObject和JSONArray区别及基本用法
  • Idea中使用git
  • 怎么爆加密过后的前端JS
  • 201521123016《Java程序设计》第14周学习总结
  • bearychat的java client
  • CentOS从零开始部署Nodejs项目
  • Go 语言编译器的 //go: 详解
  • python大佬养成计划----difflib模块
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • yii2权限控制rbac之rule详细讲解
  • 猴子数据域名防封接口降低小说被封的风险
  • 爬虫模拟登陆 SegmentFault
  • 使用权重正则化较少模型过拟合
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 怎样选择前端框架
  • 自动记录MySQL慢查询快照脚本
  • hi-nginx-1.3.4编译安装
  • 阿里云服务器如何修改远程端口?
  • 整理一些计算机基础知识!
  • ​2021半年盘点,不想你错过的重磅新书
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $().each和$.each的区别
  • (HAL库版)freeRTOS移植STMF103
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (二十三)Flask之高频面试点
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)socket Aio demo
  • (转)Unity3DUnity3D在android下调试
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .cfg\.dat\.mak(持续补充)
  • .chm格式文件如何阅读
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Project Open Day(2011.11.13)
  • .NET 分布式技术比较
  • .net 中viewstate的原理和使用
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [《百万宝贝》观后]To be or not to be?
  • [Android]How to use FFmpeg to decode Android f...