1、为了保持Key的顺序,可以使用Orderedict。Orderdict的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#KeyOrderedDict是有序的 OrderedDict([('a',1),('b',2),('c',3)])
2、Orderedict可以实现FIFO(先进先出)的dict。当容量超过限制时,首先删除最早添加的Key:
fromcollectionsimportOrderedDict classLastUpdatedOrderedDict(OrderedDict): def__init__(self,capacity): super(LastUpdatedOrderedDict,self).__init__() self._capacity=capacity def__setitem__(self,key,value): containsKey=ifkeyinselfelse 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)
以上是Pythonorderdictde的用法,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。