pensare prima che è necessario è quello di leggere la documentazione. Se si apre python tutorial e poi cercare di trovare informazioni su OrderedDict si vedrà la seguente:
classe collections.OrderedDict ([Voci]) - restituire un'istanza di un dict sottoclasse, sostenendo i soliti metodi dict. Un OrderedDict è un dict che ricorda l'ordine in cui le chiavi sono state inserite per la prima volta. Se una nuova voce sovrascrive una voce esistente, la posizione di inserimento originale viene lasciata invariata . Cancellando una voce e reinserendola, la sposterà alla fine di .
Novità nella versione 2.7.
Quindi, nel caso in cui si utilizzi un dizionario ordinato e non si cancelleranno le chiavi, "animale" sarà sempre nella posizione che si aggiunge, ad es. Indice 2.
anche per ottenere un indice di un 'gatto' si può utilizzare semplicemente:
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
fonte
2011-08-01 11:52:20
Il tuo dizionario non è un dittato ordinato: è un semplice python non ordinato. –
Solo perché lo chiami ordinato, non ne fa uno! – Jacob