# http://chimera.labs.oreilly.com/books/1230000000393/ch01.html#_keeping_the_last_n_items
# Keeping the Last N Items
| #!/usr/bin/env python # http://chimera.labs.oreilly.com/books/1230000000393/ch01.html#_keeping_the_last_n_items from collections import deque print "----------" def what_deque_look_like(inlist, size_limit=5): queue = deque(maxlen=size_limit) for i in xrange(1,10): queue.append(i) print queue for a in inlist: queue.append(a) print queue what_deque_look_like(('a','b','c','d','e')) print "----------" def what_queue_look_like(inlist, size_limit=5): q = deque(maxlen=size_limit) for a in inlist: q.append(a) print 'q = ', q q.pop() print 'after q.pop(); q = ', q q.popleft() print 'after q.popleft(); q = ', q print 'q = ', q what_queue_look_like((1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) |
| ---------- deque([1], maxlen=5) deque([1, 2], maxlen=5) deque([1, 2, 3], maxlen=5) deque([1, 2, 3, 4], maxlen=5) deque([1, 2, 3, 4, 5], maxlen=5) deque([2, 3, 4, 5, 6], maxlen=5) deque([3, 4, 5, 6, 7], maxlen=5) deque([4, 5, 6, 7, 8], maxlen=5) deque([5, 6, 7, 8, 9], maxlen=5) deque([6, 7, 8, 9, 'a'], maxlen=5) deque([7, 8, 9, 'a', 'b'], maxlen=5) deque([8, 9, 'a', 'b', 'c'], maxlen=5) deque([9, 'a', 'b', 'c', 'd'], maxlen=5) deque(['a', 'b', 'c', 'd', 'e'], maxlen=5) ---------- q = deque([1], maxlen=5) q = deque([1, 2], maxlen=5) q = deque([1, 2, 3], maxlen=5) q = deque([1, 2, 3, 4], maxlen=5) q = deque([1, 2, 3, 4, 5], maxlen=5) q = deque([2, 3, 4, 5, 6], maxlen=5) q = deque([3, 4, 5, 6, 7], maxlen=5) q = deque([4, 5, 6, 7, 8], maxlen=5) q = deque([5, 6, 7, 8, 9], maxlen=5) q = deque([6, 7, 8, 9, 10], maxlen=5) after q.pop(); q = deque([6, 7, 8, 9], maxlen=5) after q.popleft(); q = deque([7, 8, 9], maxlen=5) q = deque([7, 8, 9], maxlen=5) |
沒有留言:
張貼留言