class MyArray(object):

    def __init__(self, *args):
        self.data = OrderedDict(*args)

def __getitem__(self, key):
    if not hasattr(key, '__iter__'):
        return MyArray([(key, self.data[key])])
return MyArray([(k, self.data[k]) for k in key])
Пользовательский OrderedDict, который возвращает сам себя