Estrutura de dados para implementar um dicionário com vários índices?

Eu estou procurando por uma estrutura de dados que contém os mesmos valores sob dois índices diferentes, onde eu posso acessar os dados porou1.

Exemplo:

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

Existe alguma coisa pré-carregada, ou qual é a melhor abordagem para rolar o meu próprio (eu preciso acessar através de um índice (número que vai de 0 a n em incrementos de 1), e através de uma string).

collections.ordereddict não parece ter acesso aleatório rápido através da posição, tanto quanto eu vejo só posso andar com o iterador até chegar ao elementoi (Eu posso inserir na ordem certa).

questionAnswers(3)

yourAnswerToTheQuestion