双端队列deque
import collections
class TaskQueue(object):
def __init__(self):
super(TaskQueue,self).__init__()
self.queue = collections.deque()
def pop(self):
try:
item = self.queue.pop()#从右边取出
return item
except IndexError,e:
pass
def lpush(self,item):
try:
self.queue.appendleft(item)#从左边压入 对象或任务
except IndexError,e:
pass
def rpush(self,item):
try:
self.queue.append(item)#从右边压入 对象或任务
except IndexError,e:
pass
def q_size(self):
size = len(self.queue)
return size
def show_items(self):
return self.queue
if __name__ == '__main__':
task = TaskQueue()
print task.show_items()
print task.q_size()
task.lpush(123)
task.lpush(56)
task.rpush((45,67))#压入一个元组
task.rpush(78)
print task.show_items()
print task.q_size()
task.rpush(task)#压入一个对象
print task.show_items()
print task.pop().q_size()#从右边弹出 弹出对象并调用对象的方法
更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。
关于公众号的描述访问如下链接