我正在用python实现缓存服务。到目前为止,我正在使用一个简单的字典。我想做的是计算命中次数(通过键检索存储值的次数)。据我所知,Python内置字典没有这种可能性。我搜索了“ python字典计数”并找到了Counter
(也在stackoverflow上),但是我猜这不能满足我的要求。我不需要数数已经存在的东西。我需要增加一些来自外部的东西。而且我认为仅存储点击计数的另一本词典并不是我可以获得的最佳数据结构:)
您有任何有效的想法吗?
拥有另一本字典来存储命中数可能不是一个坏选择,但是您也可以执行以下操作:
class CacheService(object):
def __init__(self):
self.data = {}
def __setitem__(self, key, item):
self.data[key] = [item, 0]
def __getitem__(self, key):
value = self.data[key]
value[1] += 1
return value[0]
def getcount(self, key):
return self.data[key][1]
您可以这样使用它:
>>> cs = CacheService()
>>> cs[1] = 'one'
>>> cs[2] = 'two'
>>> print cs.getcount(1)
0
>>> cs[1]
'one'
>>> print cs.getcount(1)
1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句