Python Cookbook 读书笔记
简介
deque 是 double-ended queue的缩写,传统的队列只允许在一端插入数据, 另一端删除数据,操作受限。 collections模块中的deque函数是双向队列, 类似于 list,不过可以在两端执行添加和弹出元素的操作
.pop( ) 在列表右端弹出数据
.popleft( ) 在列表左端弹出数据
.append( ) 在列表右端插入数据
.appendleft( ) 在列表左端插入数据
举个栗子:
>>> q = deque()
>>> q.append(1)
>>> q.append(2)
>>> q.append(3)
>>> q
deque([1, 2, 3])
>>> q.appendleft(4)
>>> q
deque([4, 1, 2, 3])
>>> q.pop()
3
>>> q
deque([4, 1, 2])
>>> q.popleft()
4
使用 deque(maxlen=N) 构造函数会新建一个固定大小的队列。当新的元素加入并且这个队列已满的时候, 最老的元素会自动被移除掉。
再举个栗子:
>>> q = deque(maxlen=3)
>>> q.append(1)
>>> q.append(2)
>>> q.append(3)
>>> q
deque([1, 2, 3], maxlen=3)
>>> q.append(4)
>>> q
deque([2, 3, 4], maxlen=3)
>>> q.appendleft(1)
>>> q
deque([1, 2, 3], maxlen=3)