如何做一个用先进先出过程给出输出的字典

how to do a dictionary that give the output with a fifo process

我正在搜索使用字典的方法或库,该字典允许以下方法: element_dict_in({'polo':789}),和element_dict_out()那个return我是第一个放入字典的关系,我之前提到的2方法没有实现,这是为了澄清我的想法:

例如:

dict={}
element_dict_in({'polo1':789})
element_dict_in({'polo2':123})
element_dict_in({'polo3':4556})#{'polo1':789,'polo2':123,'polo3':4556}
element_dict_out()#return {'polo1':789}

我找到这个 link pythonic way for FIFO order in Dictionary 但对我来说还不够清楚,所以 存在这样的东西吗?

Python 实际上在标准库中已经有了这个 - collections.OrderedDict.

from collections import OrderedDict

my_dict = OrderedDict()
my_dict['polo1'] = 789
my_dict['polo2'] = 123
my_dict['polo3'] = 4556

print(my_dict.popitem(last=False))
# ('polo1', 789)

值得注意的是,built-in dict 类型 can do LIFO popping but not FIFO popping 如果您可以接受,并且在大多数情况下通常比 OrderedDict 更快。

您可以使用内置 dict 类型执行 dict FIFO pop,如下所示:

my_dict.pop(list(my_dict)[0])

list(my_dict) 你得到所有的钥匙

list(my_dict)[0]你得到第一个

my_dict.pop(list(my_dict)[0])你得到第一个的钥匙,弹出它

在 Python 3.7+