我正在寻找一个混合了OrderedDict但也可以通过整数寻址的数据结构,具体取决于添加元素的时间.
即
config_key = OrderedDict([('Version_Number', 'a'),
('Hardware_Config', 'b'),
('Size_Of_Data', 'c'),
('Checksum', 'd')])
这将起到如下作用:
>> print config_key['Version_Number']
a
>> print config_key[0]
a
>> print config_key['Size_Of_Data']
c
>> print config_key[2]
c
>> for x in config_key:
>> print x
Version_Number
Hardware_Config
Size_Of_Data
Checksum
有任何想法吗?
最佳答案 如果您使用的是Python 2.7,那么内置一个.
http://docs.python.org/library/collections.html#collections.OrderedDict
编辑:所以它看起来像是通过弹出操作支持项目的顺序,但你可以通过列表(my_ordered_dict)[i]做你想要的等价物,其中我是一个整数.
# Make your own like this...
class CustomOrderedDict(collections.OrderedDict):
def __getitem__(self,key):
try:
return self.values()[key]
except TypeError:
return super(CustomOrderedDict,self).__getitem__(key)
编辑:
(对不起所有这些错误,我只是快速输入它,让你知道该怎么做.)
>修复返回值而不是键
>固定递归流感
>切换列表访问[]语法,因为作为列表,更有意义.