Orden de llaves en diccionario

Tengo un diccionario

{'a': 'first', 'b': 'second'} 

Sin embargo, necesito el diccionario en un orden diferente:

 {'b': 'second', 'a': 'first'} 

¿Cuál es la mejor manera de hacer esto?

Los diccionarios no están ordenados . Así que no hay manera de hacerlo.

Si tiene python2.7 +, puede usar collections.OrderedDict Ordenado – en este caso, podría recuperar la lista de elementos usando .items() y luego revertirla y crear un nuevo OrderedDict desde la lista invertida:

 >>> od = OrderedDict((('a', 'first'), ('b', 'second'))) >>> od OrderedDict([('a', 'first'), ('b', 'second')]) >>> items = od.items() # list(od.items()) in Python3 >>> items.reverse() >>> OrderedDict(items) OrderedDict([('b', 'second'), ('a', 'first')]) 

Si está utilizando una versión anterior de Python, puede obtener un puerto de respaldo de http://code.activestate.com/recipes/576693/

Los diccionarios no tienen orden.

Puede obtener las claves, ordenarlas como desee, luego iterar los valores del diccionario de esa manera.

 keys = myDict.keys() keys = sorted(keys) # order them in some way for k in keys: v = myDict[k] 

Usted no puede Los dictados son inestables. Use un OrderedDict si necesita un diccionario ordenado.