是否有一个python数据结构:键控,有序和可通过键和顺序寻址?

我正在寻找一个混合了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)

编辑:

(对不起所有这些错误,我只是快速输入它,让你知道该怎么做.)

>修复返回值而不是键
>固定递归流感
>切换列表访问[]语法,因为作为列表,更有意义.

点赞