python3 deque作用

给出第一印象:deque是一个双向队列 

from collections import deque

a = deque()
a = deque(maxlen = 30) #限制长度 a.append(1) a.append(2) a.appendleft(3) print(a) Out[8]: deque([3, 1, 2])

 

a.clear()

Out[11]: deque([])

调用clear方法后,此时与刚创建时的状态一致

a.pop()
Out[37]: 2

a
Out[38]: deque([3, 1])

可见pop弹出最右端元素,pop里无多余参数

a=deque([1,2,3,4,5])

a.popleft()
Out[42]: 1

a
Out[43]: deque([2, 3, 4, 5])

popleft弹出最左元素

a=deque([2,2,2,3,4,5,6])

a.count(2)
Out[49]: 3
a.extend([2,3])

Out[57]: deque([2, 2, 2, 3, 4, 5, 6, 2, 3])

a.append([2,3])

Out[59]: deque([2, 2, 2, 3, 4, 5, 6, 2, 3, [2, 3]])
a
Out[66]: deque([2, 2, 2, 3, 4, 5, 6, 2, 3, [2, 3]])

a.index(3)
Out[67]: 3

a.index(3,2,5)
Out[68]: 3

但是index只能返回找到的第一个元素的索引

a.insert(2,'s')

运行后,'s'的索引为2

a.remove(2)

删除指定元素,但是只从左至右删除一个

a=deque([1,2,3,4,5])
a.reverse()

a
Out[80]: deque([5, 4, 3, 2, 1])

reverse反转

a=deque([1,2,3,4,5])
a.rotate(3)

a
Out[89]: deque([3, 4, 5, 1, 2])

把最后(n)个元素放在前面,但没有翻转顺序

 

上一篇:数据结构 -- 栈


下一篇:双端队列