【发布时间】:2021-09-14 17:56:11
【问题描述】:
我有一个脚本可以不断地向字典中添加数据(不能更改意味着没有列表或停止添加数据)。它可以轻松访问其中的 1000 多个不同的键。
我需要每个键和值,但不想重置字典 foo。
foo = {"369610": "a", "109122": "a", "907897": "a", "333291":"a", "381819": "a", "387583": "a", "677430": "a", "660221": "a", "118095":"a", "612172": "a"}
print(len(foo)) # At 10
foo["223533"] = "a" # Replaces 369610 in the dictionary
foo["601336"] = "a" # Replaces 109122 in the dictionary
print(len(foo)) # Should be 10
如果我要向字典中添加更多键,它将替换 907897,然后是 333291,然后是 381819,然后是 387583。一旦达到 10 的限制,再添加将替换第一个索引 223533。我仍然想访问每个值关于为什么这是字典而不是列表的每个键。
我曾想过遍历字典,然后获取每个条目并用以下内容覆盖该条目:
del foo[index]
foo[random.randint(5000,100000)] = "a"
但我觉得这是一个低效的解决方案。
【问题讨论】:
-
我不太明白你的问题是什么,你想要一个固定大小的字典吗?像
collections.deque但对于一个字典? -
我真的被你的第一个带有 cmets 的代码示例难住了。那应该是什么意思?
foo["223533"] = "a" # Replaces 369610。请为像我这样的凡人添加更多信息。 -
兄弟,你是个管家。我不明白你怎么能认为这个问题的格式很好,除了你之外的任何人都可以理解。
-
@CaptainTrojan,当
foo["223533"] = "a"进来时,OP想要一个LifoQueue,"369610": "a"出去 -
@Corralien 啊,我明白了!我不知道在这种情况下他为什么想要
dict,但没关系。另外,您的意思可能是FiFo,对吧?
标签: python python-3.x caching