首页 > 代码库 > collections之单向&双向序列
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之单向&双向序列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。