1、为了维持Key的顺序,可以使用OrderedDict。OrderedDict的Key按插入顺序排列,不是Key本身。
>>>fromcollectionsimportOrderedDict >>>d=dict([('a',1),('b',2),('c',3)]) >>>d#dict的Key是无序的 {'a':1,'c':3,'b':2} >>>od=OrderedDict([('a',1),('b',2),('c',3)]) >>>od#OrderedDict的Key是有序的 OrderedDict([('a',1),('b',2),('c',3)])
2、OrderedDict可以实现一个FIFO(先进先出)的dict,当容量超出限制时,先删除最早添加的Key:
fromcollectionsimportOrderedDict classLastUpdatedOrderedDict(OrderedDict): def__init__(self,capacity): super(LastUpdatedOrderedDict,self).__init__() self._capacity=capacity def__setitem__(self,key,value): containsKey=1ifkeyinselfelse0 iflen(self)-containsKey>=self._capacity: last=self.popitem(last=False) print('remove:',last) ifcontainsKey: delself[key] print('set:',(key,value)) else: print('add:',(key,value)) OrderedDict.__setitem__(self,key,value)
以上就是PythonOrderedDictde的用法,希望对大家有所帮助。
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。