使用deque保留最后添加的元素

  deque方法可以用来保存有限的队列。比如历史记录,我们只想保留最后的10条,如果产生了11条历史记录,最早的那一条历史记录就会被自动删除。比起我们手动的使用添加记录,再删除超出数目的记录,这方法更简洁、高效。下面是具体用法:

  

>>> from collections import deque
>>> q = deque(maxlen=3)  # 限制最大数目为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.append(5)
>>> q
deque([3, 4, 5], maxlen=3)
>>> q.appendleft(6)  # 还可以在最左边添加元素
>>> q
deque([6, 3, 4], maxlen=3)

同时,这个对列表的操作也更高效。deque对列表两端的插入删除元素的时间复杂度是O(1),而在列表的开头插入或者删除元素的时间复杂度是O(N)。

 

posted on 2017-01-10 20:22  Chenyvvvvuuuui  阅读(186)  评论(0)    收藏  举报