Actualización: a partir de Python 3.7, se mantiene el orden de inserción, por lo que no necesita un OrderedDictaquí. Puede usar los siguientes enfoques con una normalidaddict
Modificado en la versión 3.7: el orden del diccionario está garantizado como orden de inserción. Este comportamiento fue un detalle de implementación de CPython desde 3.6.
fuente
Python 3.6 y anterior *
Si está hablando de un habitual dict, entonces la "primera clave" no significa nada. Las claves no están ordenadas de ninguna manera en la que pueda confiar. Si iteras sobre tu dictprobablemente no obtendrás "banana"lo primero que ves.
Si necesita mantener las cosas en orden, debe usar un OrderedDicty no solo un diccionario simple.
import collections
prices = collections.OrderedDict([
("banana", 4),
("apple", 2),
("orange", 1.5),
("pear", 3),
])
Si desea ver todas las claves en orden , puede hacerlo iterando a través de él
for k in prices:
print(k)
Podría, alternativamente, poner todas las claves en una lista y luego trabajar con eso
ks = list(prices)
print(ks[0]) # will print "banana"
Una forma más rápida de obtener el primer elemento sin crear una lista sería llamar nextal iterador. Sin embargo, esto no se generaliza bien cuando se intenta obtener el nthelemento
>>> next(iter(prices))
'banana'
* CPython había garantizado el orden de inserción como detalle de implementación en 3.6.