dict可以自动删除自己的元素吗?

时间:2013-02-05 09:41:59

标签: python python-3.x

我需要一个可以回收不再需要的元素的字典对象。目标是通过删除一段时间内没有人访问过的对象,使字典不会变得太大。

我认为计时器可以完成这项工作。我会给每个键一个计时器,当计时器完成时,删除密钥,除非已经访问了密钥,在这种情况下我会重置计时器。但我担心数以千计的计时器会降低性能。

或者,我可以偶尔检查循环中的键时间。循环类似于:

myDict #the dict contains the objects
timestampDict #dict save the objects' last accessed time stamp
deleteKeys = []
currentTime = time.time()
for key in myDict.keys():
    if (currentTime-timestampDict[key])>1200: #20 minutes not be accessed
        deleteKeys.append(key)
for key in deleteKeys:
    del myDict[key]
    del timestampDict[key]

无论如何我可以知道哪个对象的时间已经过了20分钟而没有遍历dict?我想知道Python的库中是否已经有一个实现,或者如何以低成本实现它。

0 个答案:

没有答案