Python中的四种队列(queue)、堆(heap)
Python中提供了四种内置的队列实现,特别地其中的优先级队列可以用来实现堆。此外,在Python中我们也直接使用堆。熟练掌握这些数据结构,在问题求解时可以大大简化代码的实现。文末将结合一道Leetcode题目来作为演示。
1. 普通队列(FIFO)
这是最一般的队列,核心操作有put和get,这对应了一般数据结构教材中的push和pop。
from queue import Queueq = Queue()
q.put(0)
q.put(5)
q.put(3)
print('FIFO', q.queue) # [0, 5, 3]head = q.get()
print(head)
print(q.queue) # [5, 3]
执行上述代码,输出结果如下:
FIFO deque([0, 5, 3])
0
deque([5, 3])
2. LIFO队列
这其实相当于一般数据结构教材中的“栈”结构,也就是后进先出。核心操作仍然是put和get(对应了push和pop)。
from queue import LifoQueue
lifoQueue = LifoQueue()
lifoQueue.put(0)
lifoQueue.put(5)
lifoQueue.put(3)
print('LIFO', lifoQueue.queue)lifoQueue.get()
lifoQueue.get()
print(lifoQueue.queue)
执行上述代码,输出结果如下:
LIFO [0, 5, 3]
[
Python中的四种队列(queue)、堆(heap)相关推荐
- python的ols_【量化工具】OLS在python中的四种实现方式
在p-quant中,线性回归应该是最最最重要的统计方法了,没有之一:OLS又是线性回归中最常见的形式,在python中可以利用多个方法来实现 考虑线性回归如下形式 一.sklearn from skl ...
- Python中的四种交换数值的方法
交换两个变量的值方法,这个面试题如果只写一种当然很简单,没什么可以说的. 今天这个面试是问大家有几种办法来实现交换两个变量的值. 在没开始看具体答案前,你可以先想想看 下面分别来说说这几种方法 方法一 ...
- python中几种队列Queue用法区别
python中使用到的队列模块大致有三个: 1.from queue import Queue 此模块适用于线程间通信,但不能用于进程间通信. 示例代码1: [注意:此时代码存在错误!!!] im ...
- python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)
今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...
- java object 引用类型_java中的四种引用类型
java中的四种引用类型 一.强引用 强引用是最常见的,把一个对象赋给一个引用变量,这个引用变量就是一个强引用.当一个对象被强引用变量引用时,他处于可达状态,它是不会被GC回收的,即使该对象以后永远不 ...
- 计算机网络中的时延有哪几部分,计算机网络中的四种延迟分别是什么?
计算机网络中的四种延迟分别是:节点处理延迟 .排队延迟.发送延迟.传播延迟. 1.节点处理延迟 数据更改在一个服务器上完成与该更改出现在另一个服务器上之间所用的时间(例如在发布服务器上进行更改和该更改 ...
- 计算机网络中什么叫总衰耗_计算机网络中的四种延迟分别是什么?
展开全部 计算e69da5e887aa62616964757a686964616f31333431346365机网络中的四种延迟分别是:节点处理延迟 .排队延迟.发送延迟.传播延迟. 1.节点处理延迟 ...
- python 中的最大堆和最小堆(heapq库)
目录 首先来看一下什么是最大堆和最小堆? python heapq库中的一些常用方法 小试牛刀 首先来看一下什么是最大堆和最小堆? 最大堆:一种经过排序的完全二叉树,其中任意非终端节点数值均不小于其左 ...
- python函数分几种_简单了解Python中的几种函数
python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数: filter.map.reduce.lambda.yield lambda lambda函数的使用方法:在lam ...
最新文章
- Java实现MD5(32/16位大小写)加密
- php 导出csv字符串,PHP CSV字符串到数组
- go 定义一个结构体并赋初始值_Go中必须谈论的四个迷点
- java.lang.Class.getDeclaredMethod()方法详解
- 多态_月隐学python第18课
- web前端常用代码于面试等资源
- jboss与nginx_JBoss BRMS与JasperReports进行报告
- java中exception_Java中的异常 Exceptions
- 一文读懂 - 云上用户如何灵活应用定制化网络服务
- WSGI、flup、fastcgi、web.py的关系
- Messenger Group Redesign - 缓解群组社交压力设计思考
- MATLAB最简单教程
- WAP1.x协议栈浅析
- python记忆口诀-最良心的软件可以良心到什么程度?
- iOS 拼音 Swift K3Pinyin
- android 拨打电话 发送短信 权限,Android中发送短信和拨打电话
- python给pdf加图片签名_如何在PDF中添加文本和图像(例如签名)?
- java 解码和加密 汉信码_java中的编码与解码
- Hadoop数据本地化
- Java回炉之File