如何做一个用先进先出过程给出输出的字典
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+
我正在搜索使用字典的方法或库,该字典允许以下方法:
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+