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.