pensar primero que se necesita es leer la documentación. Si abre Guía de aprendizaje y luego intenta encontrar información sobre OrderedDict verá lo siguiente:
collections.OrderedDict clase ([artículos]) - Devuelve una instancia de una subclase dict , disponer de los métodos habituales dict. Un OrderedDict es un dict que recuerda el orden en que se insertaron las claves por primera vez. Si una nueva entrada sobrescribe una entrada existente, la posición de inserción original se deja sin cambios. Eliminar una entrada y reinsertarla lo moverá al final .
Nuevo en la versión 2.7.
Por lo tanto, en caso de que esté utilizando un diccionario ordenado y no vaya a eliminar las claves, entonces 'animal' estará siempre en la posición que agregue - por ej. índice 2.
también para obtener un índice de un 'gato' puede simplemente usar:
from collections import OrderedDict
d = OrderedDict((("fruit", "banana"), ("drinks", "water"), ("animal", "cat")))
d.keys()
>>> ['fruit', 'drinks', 'animal']
d.values()
>>> ['banana', 'water', 'cat']
# So
d.values().index('cat')
>>> 2
Tu diccionario no es un dict ordenado, es un dict simple de Python desordenado. –
¡El hecho de que lo llames dict ordenado no lo convierte en uno! – Jacob