collections之单向&双向序列
Posted bai_nian_min_guo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了collections之单向&双向序列相关的知识,希望对你有一定的参考价值。
这里是双向队列
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之单向&双向序列的主要内容,如果未能解决你的问题,请参考以下文章