Python 什么样的类模式或包实现了带有倒计时键的dict?
我正在寻找一个类似字典的对象,其中每个键都有一个ttl(或倒计时),每次调用Python 什么样的类模式或包实现了带有倒计时键的dict?,python,dictionary,ttl,Python,Dictionary,Ttl,我正在寻找一个类似字典的对象,其中每个键都有一个ttl(或倒计时),每次调用.pop()时,ttl都会递减。当计数器点击0.pop()时,实际上会将其删除。类似于网络数据包的生存时间,以跳数而不是秒来衡量 我猜这样的东西是存在的,但我不知道它的名字 >d=X();d、 设置('k','v',ttl=2);d、 设置('k2','v2',ttl=7) >>>d.pop('k') (1,‘v’) >>>d.pop('k') (0,'v') >>>d.pop('k') ... KeyError:'k'
.pop()
时,ttl都会递减。当计数器点击0.pop()
时,实际上会将其删除。类似于网络数据包的生存时间,以跳数而不是秒来衡量
我猜这样的东西是存在的,但我不知道它的名字
>d=X();d、 设置('k','v',ttl=2);d、 设置('k2','v2',ttl=7)
>>>d.pop('k')
(1,‘v’)
>>>d.pop('k')
(0,'v')
>>>d.pop('k')
...
KeyError:'k'
>>>d.pop('k2')
(6,'v2')
我要重新发明什么轮子?看起来像是映射到迭代器的字符串键。请您把问题说清楚一点好吗?您是想通过字典倒计时ttl,还是要跟踪不同键的多个ttl值?请尝试在此处实现。不清楚您希望如何强制执行ttl(我假设您的意思是以秒或其他形式)。我不认为标准库中有任何明显的东西,特别是如果您希望对死对象进行垃圾收集(使用WeakReference会有所帮助,但您还有一些工作要做)。最简单的方法是使用扩展字典的时钟创建一个类。您可能只需要覆盖pop——在这里您将检查TTL>时钟,如果是,则引发错误(并可能在您处理时删除)。我不是指秒内的TTL,我是指网络上对pop类跃点的调用中的TTL。每次转发数据包时,TTL都会减小。当TTL为零时,数据包将被丢弃。看起来像是映射到迭代器的字符串键。请您更清楚地说明您的问题,好吗?您是想通过字典倒计时ttl,还是要跟踪不同键的多个ttl值?请尝试在此处实现。不清楚您希望如何强制执行ttl(我假设您的意思是以秒或其他形式)。我不认为标准库中有任何明显的东西,特别是如果您希望对死对象进行垃圾收集(使用WeakReference会有所帮助,但您还有一些工作要做)。最简单的方法是使用扩展字典的时钟创建一个类。您可能只需要覆盖pop——在这里您将检查TTL>时钟,如果是,则引发错误(并可能在您处理时删除)。我不是指秒内的TTL,我是指网络上对pop类跃点的调用中的TTL。每次转发数据包时,TTL都会减小。当TTL达到零时,数据包被丢弃。