Python – Ordenar diccionario por valores y claves

Dado un diccionario, ordenar según valores descendientes, si son valores similares, luego por claves lexicográficamente. 

Entrada : test_dict = {“gfg”: 1, “es”: 1, “mejor”: 1, “para”: 1, “geeks”: 1}
Salida : {“mejor”: 1, “es”: 1, «for»: 1, «geeks»: 1, «gfg»: 1}
Explicación : todos los valores son iguales, por lo tanto, las claves están ordenadas lexicográficamente.

Entrada : test_dict = {“gfg”: 5, “es”: 4, “mejor”: 3, “para”: 2, “geeks”: 1}
Salida : {“gfg”: 5, “es”: 4, «mejor»: 3, «para»: 2, «geeks»: 1}
Explicación : todos los valores son diferentes, por lo tanto, ordenados de forma descendente.

Método: Usando sorted() + items() + comprensión de diccionario + lambda

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, realizamos la tarea de ordenar usando sorted(), la comprensión del diccionario se usa para rehacer el diccionario, items() se usa para extraer elementos para ordenar. 

Python3

# Python3 code to demonstrate working of 
# Sort Dictionary by Values and Keys
# Using sorted() + items() + dictionary comprehension + lambda
  
# initializing dictionary
test_dict = {"Gfg" : 1, "is" :  3, "Best" : 2, "for" : 3, "Geeks" : 2}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# - sign for descended values, omit if low-high sorting required
res = {val[0] : val[1] for val in sorted(test_dict.items(), key = lambda x: (-x[1], x[0]))}
  
# printing result 
print("Sorted dictionary : " + str(res)) 
Producción

The original dictionary is : {'Gfg': 1, 'is': 3, 'Best': 2, 'for': 3, 'Geeks': 2}
Sorted dictionary : {'for': 3, 'is': 3, 'Best': 2, 'Geeks': 2, 'Gfg': 1}

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *