首页 > 其他 > 详细

collections之单向&双向序列

时间:2017-03-08 01:11:32      阅读:221      评论:0      收藏:0      [点我收藏+]
这里是双向队列
import collections
#创建一个双向队列
obj = collections.deque()

#给这个队列的右边添加一个元素
obj.append(‘11‘)
#给这个队列的左边添加一个元素
obj.appendleft(‘a‘)
obj.appendleft(‘11‘)
print(obj)
# deque([‘11‘, ‘a‘, ‘11‘])

#统计一个队列中某个元素的数量
ret = obj.count(‘11‘)
print(ret)
# 2


#extend,可以同时添加多个元素,在队列的右边添加list中的元素

obj.extend([‘aa‘,‘bb‘,‘cc‘])
print(obj)

# deque([‘11‘, ‘a‘, ‘11‘, ‘aa‘, ‘bb‘, ‘cc‘])

#extendleft,可以同时添加多个元素,在队列的左边添加list中的元素
obj.extendleft([‘00‘,‘11‘,‘bb‘])
print(obj)

# deque([‘bb‘, ‘11‘, ‘00‘, ‘11‘, ‘a‘, ‘11‘, ‘aa‘, ‘bb‘, ‘cc‘])


#index,取某个元素的在队列中的位置

ret = obj.index(‘bb‘)
print(ret)

# 0


#insert,往队列中插入一个元素

obj.insert(0,‘ccc‘)
print(obj)

# deque([‘ccc‘, ‘bb‘, ‘11‘, ‘00‘, ‘11‘, ‘a‘, ‘11‘, ‘aa‘, ‘bb‘, ‘cc‘])


#pop,popleft,,从右边删除队列中的一个元素,从左边删除队列中的一个元素,移除并拿到
ret = obj.pop()
print(obj)
# deque([‘ccc‘, ‘bb‘, ‘11‘, ‘00‘, ‘11‘, ‘a‘, ‘11‘, ‘aa‘, ‘bb‘])
print(ret)
# cc
ret = obj.popleft()
print(obj)
# deque([‘bb‘, ‘11‘, ‘00‘, ‘11‘, ‘a‘, ‘11‘, ‘aa‘, ‘bb‘])
print(ret)
# ccc


#remove,删除队列中的某个元素

#reverse,反转队列

#rotate,从队列的右边拿数据放在左边,参数为3,那么先把右边的bb放在左边,然后在把
#aa放在左边,最后在把11放在左边

print(obj)
# deque([‘bb‘, ‘11‘, ‘00‘, ‘11‘, ‘a‘, ‘11‘, ‘aa‘, ‘bb‘])
obj.rotate(3)
print(obj)
# deque([‘11‘, ‘aa‘, ‘bb‘, ‘bb‘, ‘11‘, ‘00‘, ‘11‘, ‘a‘])


#这里是单向队列


import queue
#创建一个单向队列
obj = queue.Queue()
print(type(obj))
# <class ‘queue.Queue‘>
obj.put(‘a‘)
obj.put(‘b‘)
obj.put(‘c‘)
print(obj)

#qsize
print(obj.qsize())
# 3
#empty

#get

print(obj.get())
# a
print(obj.get())
# b
#full

collections之单向&双向序列

原文:http://www.cnblogs.com/bainianminguo/p/6517493.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!