Aggiornamento: a partire da Python 3.7, l'ordine di inserimento viene mantenuto, quindi non è necessario un OrderedDict
qui. È possibile utilizzare gli approcci di seguito con un normaledict
Modificato nella versione 3.7: l' ordine del dizionario è garantito come ordine di inserimento. Questo comportamento era un dettaglio di implementazione di CPython da 3.6.
fonte
Python 3.6 e precedenti *
Se stai parlando di un normale dict
, allora la "prima chiave" non significa nulla. Le chiavi non sono ordinate in alcun modo su cui poter contare. Se esegui iterazioni su di dict
te probabilmente non otterrai "banana"
la prima cosa che vedi.
Se devi mantenere le cose in ordine, devi usare un OrderedDict
dizionario e non solo un semplice dizionario.
import collections
prices = collections.OrderedDict([
("banana", 4),
("apple", 2),
("orange", 1.5),
("pear", 3),
])
Se poi volevi vedere tutte le chiavi in ordine, puoi farlo scorrendo attraverso di essa
for k in prices:
print(k)
In alternativa, potresti mettere tutte le chiavi in un elenco e quindi lavorare con quello
ks = list(prices)
print(ks[0]) # will print "banana"
Un modo più veloce per ottenere il primo elemento senza creare un elenco sarebbe quello di chiamare next
l'iteratore. Questo non si generalizza bene quando si cerca di ottenere l' nth
elemento
>>> next(iter(prices))
'banana'
* CPython aveva garantito l'ordine di inserimento come dettaglio di implementazione in 3.6.