Posible duplicado:
Python: Ordenar un diccionario por valor
Tengo un diccionario como este:
A = {'Name1':34, 'Name2': 12, 'Name6': 46,....}
Quiero una lista de claves ordenadas por los valores, es decir, [Name2, Name1, Name6....]
¡¡¡Gracias!!!
Utilice sorted
con el método get
como clave (puede accederse a las claves del diccionario mediante iteración ):
sorted(A, key=A.get)
Utilice el argumento key
sorted
sorted(d, key=d.get)
sorted(a.keys(), key=a.get)
Esto ordena las claves, y para cada clave, usa a.get
para encontrar el valor a usar como su valor de clasificación.
Yo uso
items = dict.items() items.sort(key=lambda item: (item[1], item[0])) sorted_keys = [ item[0] for item in items ]
El argumento key
para ordenar es un invocable que devuelve la clave de clasificación para usar. En este caso, estoy devolviendo una tupla de (value, key)
, pero podría devolver el valor (es decir, key=lambda item: item[1]
) si lo desea.