Python实现队列的方法
本文实例讲述了Python实现队列的方法。分享给大家供大家参考。具体实现方法如下:
#!/usr/bin/env python
queue = []
def enQ():
queue.append(raw_input('Enter new string: ').strip())
#调用list的列表的pop()函数.pop(0)为列表的第一个元素
def deQ():
if len(queue) == 0:
print 'Cannot pop from an empty queue!'
else:
print 'Removed [', queue.pop(0) ,']'
def viewQ():
print queue
CMDs = {'e': enQ, 'd': deQ, 'v': viewQ}
def showmenu():
pr = """
(E)nqueue
(D)equeue
(V)iew
(Q)uit
Enter choice: """
while True:
while True:
try:
choice = raw_input(pr).strip()[0].lower()
except (EOFError, KeyboardInterrupt, IndexError):
choice = 'q'
print '\nYou picked: [%s]' % choice
if choice not in 'devq':
print 'Invalid option, try again'
else:
break
if choice == 'q':
break
CMDs[choice]()
if __name__ == '__main__':
showmenu()
希望本文所述对大家的Python程序设计有所帮助。
相关推荐
-
Python多线程和队列操作实例
Python3,开一个线程,间隔1秒把一个递增的数字写入队列,再开一个线程,从队列中取出数字并打印到终端 复制代码 代码如下: #! /usr/bin/env python3 import time import threading import queue # 一个线程,间隔一定的时间,把一个递增的数字写入队列 # 生产者 class Producer(threading.Thread): def __init__(self, work_queue): super().__in
-
Python实现简单多线程任务队列
最近我在用梯度下降算法绘制神经网络的数据时,遇到了一些算法性能的问题.梯度下降算法的代码如下(伪代码): def gradient_descent(): # the gradient descent code plotly.write(X, Y) 一般来说,当网络请求 plot.ly 绘图时会阻塞等待返回,于是也会影响到其他的梯度下降函数的执行速度. 一种解决办法是每调用一次 plotly.write 函数就开启一个新的线程,但是这种方法感觉不是很好. 我不想用一个像 cerely(一种分布式任
-
Python优先队列实现方法示例
本文实例讲述了Python优先队列实现方法.分享给大家供大家参考,具体如下: 1. 代码 import Queue import threading class Job(object): def __init__(self, priority, description): self.priority = priority self.description = description print 'New job:', description return def __cmp__(self, ot
-
python计算最小优先级队列代码分享
复制代码 代码如下: # -*- coding: utf-8 -*- class Heap(object): @classmethod def parent(cls, i): """父结点下标""" return int((i - 1) >> 1); @classmethod def left(cls, i): """左儿子下标""
-
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(
-
python异步任务队列示例
很多场景为了不阻塞,都需要异步回调机制.这是一个简单的例子,大家参考使用吧 复制代码 代码如下: #!/usr/bin/env python# -*- coding: UTF-8 -*- import loggingimport queueimport threading def func_a(a, b): return a + b def func_b(): pass def func_c(a, b, c): return a, b, c # 异步任务队列_task_queu
-
Python3中多线程编程的队列运作示例
Python3,开一个线程,间隔1秒把一个递增的数字写入队列,再开一个线程,从队列中取出数字并打印到终端 #! /usr/bin/env python3 import time import threading import queue # 一个线程,间隔一定的时间,把一个递增的数字写入队列 # 生产者 class Producer(threading.Thread): def __init__(self, work_queue): super().__init__() # 必须调用 self.
-
Python实现的数据结构与算法之队列详解
本文实例讲述了Python实现的数据结构与算法之队列.分享给大家供大家参考.具体分析如下: 一.概述 队列(Queue)是一种先进先出(FIFO)的线性数据结构,插入操作在队尾(rear)进行,删除操作在队首(front)进行. 二.ADT 队列ADT(抽象数据类型)一般提供以下接口: ① Queue() 创建队列 ② enqueue(item) 向队尾插入项 ③ dequeue() 返回队首的项,并从队列中删除该项 ④ empty() 判断队列是否为空 ⑤ size() 返回队列中项的个数 队
-
python实现堆栈与队列的方法
本文实例讲述了python实现堆栈与队列的方法.分享给大家供大家参考.具体分析如下: 1.python实现堆栈,可先将Stack类写入文件stack.py,在其它程序文件中使用from stack import Stack,然后就可以使用堆栈了. stack.py的程序: 复制代码 代码如下: class Stack(): def __init__(self,size): self.size=size; self.stack=[];
-
python计算最大优先级队列实例
复制代码 代码如下: # -*- coding: utf-8 -*- class Heap(object): @classmethod def parent(cls, i): """父结点下标""" return int((i - 1) >> 1); @classmethod def left(cls, i): """左儿子下标""
随机推荐
- Python 流程控制实例代码
- CSS入门教程篇
- SQL2005查看死锁存储过程sp_who_lock
- VBS相册生成脚本[
- asp.net利用NamingContainer属性获取GridView行号的方法
- PHP+jQuery+Ajax+Mysql如何实现发表心情功能
- ES6新特性:使用export和import实现模块化详解
- ASP.NET 页面事件执行顺序介绍
- win7 iis7.5 乱码 和 解析不了ASP的ADO连接数据库 的解决方法
- PHP通过CURL实现定时任务的图片抓取功能示例
- vbs/js脚本编程教学(2)
- Linux学习基础
- C++ 实现优先队列的简单实例
- jQuery焦点图切换特效代码分享
- 基于JavaScript实现的折半查找算法示例
- React-router 4 按需加载的实现方式及原理详解
- 微信小程序 ES6Promise.all批量上传文件实现代码
- Android 对话框sweet-alert-dialog
- ASM源码学习之ClassReader、ClassVisitor与ClassWriter详解
- Java解析Excel文件并把数据存入数据库
