Структура данных для реализации словаря с несколькими индексами?

Я ищу структуру данных, которая содержит одинаковые значения в двух разных индексах, где я могу получить доступ к данным с помощьюeither one.

Пример:

x = mysticalDataStructure()
x.add(1,'karl', dog)
x.add(2,'lisa', cat)

$ x[1].age
2
$ x['karl'].age
2
$ x[1].age = 4
$ x['karl'].age
4

Есть ли что-нибудь заранее или каков мой лучший способ прокрутки (мне нужен доступ через индекс (число, идущее от 0 до n с шагом 1) и через строку).

collections.ordereddict кажется, не имеет быстрого произвольного доступа через позицию, насколько я вижу, я могу пройти его только с помощью итератора, пока не достигну элементаi (Могу вставить в правильном порядке).

Ответы на вопрос(3)

Ваш ответ на вопрос