常用内建模块篇
1.collections
OrderedDict可以实现一个FIFO(先进先出)的dict,当容量超出限制时,先删除最早添加的Key:
OrderedDict可以实现一个FIFO(先进先出)的dict,当容量超出限制时,先删除最早添加的Key:
from collections import OrderedDict
class LastUpdatedOrderedDict(OrderedDict):
def __init__(self, capacity):
super(LastUpdatedOrderedDict, self).__init__() # 调用父类的方法初始化参数
self._capacity = capacity
def __setitem__(self, key, value):
containsKey = 1 if key in self else 0# 判断key是否存在
if len(self) - containsKey >= self._capacity:#超出容量怎么办
last = self.popitem(last=False)#last=False:先进先出。 last=True:先进后出
# popitem()方法作用是:随机返回并删除字典中的一对键和值(项)
# popitem()的随机删除,是建立在dict的无序基础上的
print 'remove:', last
if containsKey:
del self[key]
print 'set:', (key, value) #重新给key设value