Python标准库collections.deque自用整理

2020-04-22  本文已影响0人  studying_rachel

Python 3.7.7 文档
collections - Container datatypes
deque读作“deck”(“double-ended queue”)

Method 作用
maxlen deque的最大长度,maxlen值为None则没有大小限制
append(x) 在deque右端加入元素x
appendleft(x) 在deque左端加入元素x
clear() 清空队列,deque长度变为0
copy() Create a shallow copy of the deque
count(x) 计算deque中等于x的元素的数量
extend(iterable) 在右端逐个添加iterable参数中的元素
extendleft(iterable) 在左端逐个添加iterable参数中的元素 ;添加部分的显示顺序和extend中相反
index(x[, start[, stop]]) 与list的index方法相似 or 返回ValueError
insert(i, x) 与list的insert方法相似 or 插入元素使得长度超过maxlen时, 返回IndexError
pop() 删除并返回最右端元素 or 无元素时,返回IndexError
popleft() 删除并返回最左端元素 or 无元素时,返回IndexError
remove(x) 删除第一个出现的x值,没有的话返回ValueError
reverse() Reverse the elements of the deque in-place and then return None
rotate(n=1) n值为正,向右转动;n值为负,向左转动;rotate(n=-1)等价于d.appendleft(d.pop()), rotate(n=-1)等价于d.append(d.popleft())
>>> from collections import deque
# 创建 deque
>>> d = deque()
>>> d
deque([])
>>> d = deque(maxlen=None)
>>> d
deque([])
>>> d = deque(maxlen = 5)
>>> d = deque('python', maxlen = 5)
>>> d
deque(['y', 't', 'h', 'o', 'n'], maxlen=5)
>>> d = deque((2,5))
>>> d
deque([2, 5])
>>> d = deque((2,))
>>> d
deque([2])
# 其它
>>> d = deque('python')
>>> for elem in d:
    print(elem.upper())
    
P
Y
T
H
O
N
>>> d.pop()
'n'
>>> d.popleft()
'p'
>>> d[0]   # 支持indexed access
'y'
>>> d[-1]
'o'
>>> list(reversed(d))  # 支持reversed(d),支持list()
['o', 'h', 't', 'y']
>>> d
deque(['y', 't', 'h', 'o'])  # d没有发生变化
>>> 'h' in d  #至此用in operator来检测membership
True
>>> d.rotate(-1)
>>> d
deque(['t', 'h', 'o', 'y'])
>>> deque(reversed(d))
deque(['y', 'o', 'h', 't'])
>>> d.clear()
>>> d.pop()
Traceback (most recent call last):
  File "<pyshell#55>", line 1, in <module>
    d.pop()
IndexError: pop from an empty deque
>>> d.extend('abc')
>>> d
deque(['a', 'b', 'c'])
>>> d.extendleft('abc')
>>> d
deque(['c', 'b', 'a', 'a', 'b', 'c'])
上一篇 下一篇

猜你喜欢

热点阅读