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))
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