码迷,mamicode.com
首页 > 编程语言 > 详细

python基础:deque的用法

时间:2017-05-28 23:15:32      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:pen   pytho   速度   技术   分享   collect   移动   img   添加   

deque(maxlen=N) 创建了一个固定长度的队列,当有新的记录加入而队列已满时会自动移动除最老的那条记录。

技术分享
1 from collections import deque
2 d=deque(maxlen=3)
3 d.append(1)
4 d.append(2)
5 d.append(3)
6 print(d)
7 print(type(d))
8 d.append(4)
9 print(d)
View Code

输出如下:

deque([1, 2, 3], maxlen=3)
<class ‘collections.deque‘>
deque([2, 3, 4], maxlen=3)

虽然通过列表操作(append、del)也能够完成deque的功能,但是队列的这种解决方案要更优雅的多,运行速度也将更快。如果deque不指定队列长度,将得到一个无界限的队列,可以在两端执行添加和弹出操作,例如:

技术分享
 1 from collections import deque
 2 d=deque()
 3 d.append(1)
 4 d.append(2)
 5 d.append(3)
 6 print(d)
 7 d.appendleft(4)
 8 print(d)
 9 d.pop()
10 print(d)
11 d.popleft()
12 print(d)
View Code

输出如下:

deque([1, 2, 3])
deque([4, 1, 2, 3])
deque([4, 1, 2])
deque([1, 2])

从队列两端添加或者弹出元素的复杂度都是O(1)。这和列表不同,当从列表的头部插入或者移除元素时,列表的复杂度为O(N)

python基础:deque的用法

标签:pen   pytho   速度   技术   分享   collect   移动   img   添加   

原文地址:http://www.cnblogs.com/yizhenfeng168/p/6916833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!